package cn.com.taiji.zhongxiao.service; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; import java.util.Vector; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import javax.inject.Inject; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaBuilder.In; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Join; import javax.persistence.criteria.Predicate; import javax.persistence.criteria.Root; import cn.hutool.core.util.StrUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort.Direction; import org.springframework.data.domain.Sort.Order; import org.springframework.data.jpa.domain.Specification; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Service; import com.alibaba.csb.sdk.HttpCaller; import com.alibaba.csb.sdk.HttpCallerException; import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; import cn.com.taiji.sys.domain.Code; import cn.com.taiji.sys.domain.Dept; import cn.com.taiji.sys.domain.Role; import cn.com.taiji.sys.domain.User; import cn.com.taiji.sys.dto.CodeDto; import cn.com.taiji.sys.dto.UserDto; import cn.com.taiji.sys.service.UserService; import cn.com.taiji.util.Pagination; import cn.com.taiji.util.ToolUtil; import cn.com.taiji.zhongxiao.domain.Indicators; import cn.com.taiji.zhongxiao.domain.IndicatorsRepository; import cn.com.taiji.zhongxiao.domain.Subscribemanage; import cn.com.taiji.zhongxiao.domain.SubscribemanageRepository; import cn.com.taiji.zhongxiao.domain.Sxcode; import cn.com.taiji.zhongxiao.domain.SxcodeRepository; import cn.com.taiji.zhongxiao.domain.TcodeSet; import cn.com.taiji.zhongxiao.domain.TdataMeta; import cn.com.taiji.zhongxiao.domain.TdataMetaRepository; import cn.com.taiji.zhongxiao.domain.TguajieopinionList; import cn.com.taiji.zhongxiao.domain.TguajieopinionListRepository; import cn.com.taiji.zhongxiao.domain.TinfoClass; import cn.com.taiji.zhongxiao.domain.TinfoClassRepository; import cn.com.taiji.zhongxiao.domain.TinfoclassDatameta; import cn.com.taiji.zhongxiao.domain.TinfoclassRes; import cn.com.taiji.zhongxiao.domain.TmessageInfo; import cn.com.taiji.zhongxiao.domain.TresClassify; import cn.com.taiji.zhongxiao.domain.TshareApply; import cn.com.taiji.zhongxiao.domain.TshareApplyRepository; import cn.com.taiji.zhongxiao.dto.DelayDataShareInfo; import cn.com.taiji.zhongxiao.dto.DelayInfo; import cn.com.taiji.zhongxiao.dto.DelayServiceShareInfo; import cn.com.taiji.zhongxiao.dto.HisTaskDto; import cn.com.taiji.zhongxiao.dto.IndicatorsDto; import cn.com.taiji.zhongxiao.dto.TcodeSetDto; import cn.com.taiji.zhongxiao.dto.TdataMetaDto; import cn.com.taiji.zhongxiao.dto.TinfoClassDto; import cn.com.taiji.zhongxiao.dto.TserviceRegInfoDto; import cn.com.taiji.zhongxiao.dto.TshareApplyDto; import cn.com.taiji.zhongxiao.dto.VtasklistDto; @Service public class TinfoClassService { private static final Logger log = LoggerFactory .getLogger(TinfoClassService.class); @Value("${indicators.ywfglValue}") public int ywfglValue; @Value("${indicators.yyfglValue}") public int yyfglValue; @Value("${indicators.qzgllValue}") public int qzgllValue; @Value("${indicators.xtgllValue}") public int xtgllValue; @Value("${indicators.gjlValue}") public int gjlValue; @Value("${indicators.kblValue}") public int kblValue; @Value("${indicators.sjgxValue}") public int sjgxValue; @Value("${indicators.mlshValue}") public int mlshValue; @Value("${indicators.gjshValue}") public int gjshValue; @Inject TguajieopinionListRepository tguajieopinionListRepository; @Inject TmessageInfoService tmessageInfoService; @Inject ThreadPoolTaskExecutor threadPoolTaskExecutor; @Value("${database_type}") String database_type; @Value("${admin_id}") String admin_id; @Value("${zgbmgl_role}") String zgbmgl_role; @Value("${zgbmbz_role}") String zgbmbz_role; @Inject TshareApplyRepository tshareApplyRepository; @Inject JdbcTemplate jdbcTemplate; @Inject TinfoClassRepository tinfoClassRepository; @Inject TdataMetaRepository tdataMetaRepository; @Inject UserService uiservice; @Inject SubscribemanageRepository subscribemanageRepository; @Inject SxcodeRepository sxcodeRepository; @Inject TcodeSetService tcodeSetService; @Inject IndicatorsRepository indicatorsRepository; @Inject TresClassifyService tresClassifyService; @Inject SysDeptService deptService; @Inject DbdcCodeService dbdcCodeService; @Inject DatametaService datametaService; /** * * @Description: 获取信息类注册信息列表 * @param dto * @param pag * @return Pagination * @throws * @author lijiezhi_pc * @date 2017年12月27日 */ public Pagination findTinfoClassZcList(final TinfoClassDto dto, Pagination pag,final User userInfo,final String type) { List orders = new ArrayList(); Order order = new Order(Direction.ASC, "inprocess"); Order order1 = new Order(Direction.DESC, "id"); Order order2 = new Order(Direction.DESC, "createdate"); Order order3 = new Order(Direction.DESC, "taskname"); orders.add(order); orders.add(order3); orders.add(order2); orders.add(order1); Sort sort = new Sort(orders); PageRequest request = new PageRequest(pag.getPageCurrentNum() - 1, pag.getPageSize(), sort); Page page; page = tinfoClassRepository.findAll(new Specification() { @Override public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder cb) { List pl = new ArrayList(); Set serRole = userInfo.getRoles(); boolean flag = false; for (Role role : serRole) { if(admin_id.equals(role.getRoleId())) flag = true; } if(!flag&&type.equals("0")){ In in = cb.in(root.get("providebmcode")); for (Dept dept : userInfo.getDepts()) { in.value(dept.getDeptId()); } if(userInfo.getDepts().size()>0){ pl.add(cb.or(cb.equal(root.get("creator"), userInfo.getUserId()),in)); } else{ pl.add(cb.equal(root.get("creator"), userInfo.getUserId())); } } pl.add(cb.or(cb.equal(root.get("inprocess"), "0"),cb.equal(root.get("inprocess"), "1"),cb.equal(root.get("inprocess"), "2"),cb.equal(root.get("inprocess"), "3"))); if(!ToolUtil.isNull(dto.getInfoname())){ pl.add(cb.like(root.get("infoname"), "%"+dto.getInfoname()+"%")); } if(!ToolUtil.isNull(dto.getInfotypename())){ pl.add(cb.like(root.get("infotypename"), "%"+dto.getInfotypename()+"%")); } if(!ToolUtil.isNull(dto.getGlinfotypename())){ pl.add(cb.like(root.get("glinfotypename"), "%"+dto.getGlinfotypename()+"%")); } if(!ToolUtil.isNull(dto.getFltag())){ pl.add(cb.like(root.get("fltag"), "%"+dto.getFltag()+"%")); } if(!ToolUtil.isNull(dto.getSharetype())){ pl.add(cb.equal(root.get("sharetype"), dto.getSharetype())); } if(!ToolUtil.isNull(dto.getProvidename())){ pl.add(cb.equal(root.get("providename"), dto.getProvidename())); } if(!ToolUtil.isNull(dto.getProvidezgname())){ pl.add(cb.equal(root.get("providezgname"), dto.getProvidezgname())); } if(!ToolUtil.isNull(dto.getProvidebmname())){ pl.add(cb.like(root.get("providebmname"), "%"+dto.getProvidebmname()+"%")); } if(!ToolUtil.isNull(dto.getTaskname())) { switch(dto.getTaskname()) { case "未提交": pl.add(cb.equal(root.get("inprocess"), "0"));break; case "部门审核":{ pl.add(cb.equal(root.get("inprocess"), "1")); pl.add(cb.equal(root.get("taskname"), "部门审核")); };break; case "主管部门审核": { pl.add(cb.equal(root.get("inprocess"), "1")); pl.add(cb.equal(root.get("taskname"), "主管部门审核")); } break; case "已发布":pl.add(cb.equal(root.get("inprocess"), "2"));break; case "停用":pl.add(cb.equal(root.get("inprocess"), "5"));;break; case "编目人员修改": { pl.add(cb.equal(root.get("inprocess"), "1")); pl.add(cb.equal(root.get("taskname"), "编目人员修改")); } break; default: break; } } if(!ToolUtil.isNull(dto.getInfocode())){ pl.add(cb.like(root.get("infocode"), "%"+dto.getInfocode()+"%")); } if(!ToolUtil.isNull(dto.getIsopensocial())){ pl.add(cb.equal(root.get("isopensocial"), dto.getIsopensocial())); } if(!ToolUtil.isNull(dto.getIsglqz())){ pl.add(cb.equal(root.get("isglqz"), dto.getIsglqz())); } if(!ToolUtil.isNull(dto.getManagetype())){ pl.add(cb.equal(root.get("managetype"), dto.getManagetype())); } if(dto.getHitchStatus()!=null){ if("1".equals(dto.getHitchStatus()+"")) pl.add(cb.equal(root.get("hitchStatus"), dto.getHitchStatus())); else { pl.add(cb.or(cb.equal(root.get("hitchStatus"), dto.getHitchStatus()),cb.isNull(root.get("hitchStatus")))); } } // 起始时间 if (!ToolUtil.isNull(dto.getStartdate())) { pl.add(cb.greaterThanOrEqualTo(root. get("updatetime"),dto.getStartdate())); } // 结束时间 if (!ToolUtil.isNull(dto.getEnddate())) { pl.add(cb.lessThanOrEqualTo(root. get("updatetime"),dto.getEnddate()+" 23:59:59")); } if(type.equals("1")&&!flag){ In in = cb.in(root.get("providecode")); for (Dept dept : userInfo.getDepts()) { in.value(dept.getDeptId()); } if(userInfo.getDepts().size()>0){ pl.add(in); } } if(type.equals("2")&&!flag){ In in = cb.in(root.get("providebmcode")); for (Dept dept : userInfo.getDepts()) { in.value(dept.getDeptId()); } if(userInfo.getDepts().size()>0){ pl.add(in); } } if(type.equals("3")&&!flag){ In in = cb.in(root.get("xzqhcode")); for (Dept dept : userInfo.getDepts()) { in.value(dept.getXzqhcode()); } if(userInfo.getDepts().size()>0){ pl.add(in); } } return cb.and(pl.toArray(new Predicate[0])); } }, request); List dataList = page.getContent(); List dtolsit = new ArrayList(); for (TinfoClass u : dataList) { dtolsit.add(new TinfoClassDto(u)); } pag.setPageResult(dtolsit); pag.setPageCount(page.getTotalPages()); pag.setPageTotal((int) page.getTotalElements()); return pag; } public Pagination findTinfoClassBgList(final TinfoClassDto dto, Pagination pag,final String userId) { List orders = new ArrayList(); Order order = new Order(Direction.DESC, "inprocess"); Order order1 = new Order(Direction.DESC, "id"); Order order2 = new Order(Direction.DESC, "createdate"); orders.add(order); orders.add(order1); orders.add(order2); Sort sort = new Sort(orders); PageRequest request = new PageRequest(pag.getPageCurrentNum() - 1, pag.getPageSize(), sort); Page page; page = tinfoClassRepository.findAll(new Specification() { @Override public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder cb) { List pl = new ArrayList(); pl.add(cb.equal(root.get("creator"), userId)); pl.add(cb.or(cb.equal(root.get("isbg") ,"1"),cb.equal(root.get("isbg"),"2"))); if(!ToolUtil.isNull(dto.getInfoname())){ pl.add(cb.like(root.get("infoname"), "%"+dto.getInfoname()+"%")); } if(!ToolUtil.isNull(dto.getInfotypename())){ pl.add(cb.like(root.get("infotypename"), "%"+dto.getInfotypename()+"%")); } if(!ToolUtil.isNull(dto.getSharetype())){ pl.add(cb.equal(root.get("sharetype"), dto.getSharetype())); } if(!ToolUtil.isNull(dto.getProvidename())){ pl.add(cb.equal(root.get("providename"), dto.getProvidename())); } if(!ToolUtil.isNull(dto.getInfocode())){ pl.add(cb.equal(root.get("infocode"), dto.getInfocode())); } if(dto.getHitchStatus()!=null){ if("1".equals(dto.getHitchStatus()+"")) pl.add(cb.equal(root.get("hitchStatus"), dto.getHitchStatus())); else { pl.add(cb.or(cb.equal(root.get("hitchStatus"), dto.getHitchStatus()),cb.isNull(root.get("hitchStatus")))); } } return cb.and(pl.toArray(new Predicate[0])); } }, request); List dataList = page.getContent(); List dtolsit = new ArrayList(); for (TinfoClass u : dataList) { dtolsit.add(new TinfoClassDto(u)); } pag.setPageResult(dtolsit); pag.setPageCount(page.getTotalPages()); pag.setPageTotal((int) page.getTotalElements()); return pag; } public Pagination findTinfoClassYapplyList(final TinfoClassDto dto,final TinfoclassDatameta datameta, Pagination pag,final User userInfo) { String deptid=""; for(Dept dept:userInfo.getDepts()) { deptid=deptid+dept.getDeptId()+","; } StringBuffer sql = new StringBuffer("select p.infocode,p.infoname,p.sharetype sharetype1,p.providebmname,q.* from t_infoclass p,t_infoclass_datameta q where p.id in (select tinfoclassid from t_shareapply where instr(?,applydeptid)>0 and state='2') " + " and p.id=q.tinfoclassid "); List paramList=new ArrayList(); paramList.add(deptid); if(!ToolUtil.isNull(dto.getInfocode())) { sql.append(" and p.infocode like ?"); paramList.add("%"+dto.getInfocode()+"%"); } if(!ToolUtil.isNull(dto.getInfoname())) { sql.append(" and p.infoname like ?"); paramList.add("%"+dto.getInfoname()+"%"); } if(!ToolUtil.isNull(dto.getProvidebmname())) { sql.append(" and p.providebmname like ?"); paramList.add("%"+dto.getProvidebmname()+"%"); } if(!ToolUtil.isNull(dto.getSharetype())) { sql.append(" and p.sharetype = ?"); paramList.add(dto.getSharetype()); } if(!ToolUtil.isNull(datameta.getXxxmc())) { sql.append(" and q.xxxmc = ?"); paramList.add("%"+datameta.getXxxmc()+"%"); } if(!ToolUtil.isNull(datameta.getXxxbm())) { sql.append(" and q.xxxbm = ?"); paramList.add("%"+datameta.getXxxbm()+"%"); } Object[] args = new Object[]{}; int length = paramList.size(); if(length>0){ args=new Object[length]; for(int i=0;i() { @Override public TinfoclassDatameta mapRow(ResultSet rs, int rowNum) throws SQLException { TinfoclassDatameta info =new TinfoclassDatameta(); info.setId(rs.getString("id")); info.setInfoname(rs.getString("infoname")); info.setInfocode(rs.getString("infocode")); info.setSharetype1(rs.getString("sharetype1")); info.setProvidebmname(rs.getString("providebmname")); info.setXxxmc(rs.getString("xxxmc")); info.setXxxbm(rs.getString("xxxbm")); info.setGlsjy(rs.getString("glsjy")); info.setSharetype(rs.getString("sharetype")); info.setShareconditions(rs.getString("shareconditions")); info.setSharemodename(rs.getString("sharemodename")); info.setSharemode(rs.getString("sharemode")); info.setSharemodeid(rs.getString("sharemodeid")); info.setSharemodetypename(rs.getString("sharemodetypename")); info.setSharemodetype(rs.getString("sharemodetype")); info.setSharemodetypeid(rs.getString("sharemodetypeid")); info.setIsopensocial(rs.getString("isopensocial")); info.setOpencondition(rs.getString("opencondition")); info.setMetacode(rs.getString("metacode")); info.setMetacodeDis(rs.getString("metacode_dis")); info.setMetacodeid(rs.getString("metacodeid")); info.setMetaname(rs.getString("metaname")); info.setDatatype(rs.getString("datatype")); info.setDatatypeDis(rs.getString("datatype_dis")); info.setDatatypeid(rs.getString("datatypeid")); info.setDatasize(rs.getString("datasize")); info.setRanges(rs.getString("ranges")); info.setIsprimary(rs.getString("isprimary")); info.setIndexnum(rs.getInt("indexnum")); info.setTinfoclassid(rs.getString("tinfoclassid")); if(!ToolUtil.isNull(rs.getString("codesetid"))){ TcodeSetDto code = tcodeSetService.getOne(String.valueOf(rs.getString("codesetid"))); if(code!=null) { info.setCodesetid(code.getCodesetId()); info.setCodesetname(code.getCodesetName()); } } info.setDatametaid(rs.getString("datametaid")); return info; } },jdbcTemplate,database_type); return pag; } public Pagination findTinfoClassVersionList(final TinfoClassDto dto, Pagination pag) { List orders = new ArrayList(); Order order = new Order(Direction.DESC, "inprocess"); Order order1 = new Order(Direction.DESC, "id"); Order order2 = new Order(Direction.DESC, "createdate"); orders.add(order); orders.add(order1); orders.add(order2); Sort sort = new Sort(orders); PageRequest request = new PageRequest(pag.getPageCurrentNum() - 1, pag.getPageSize(), sort); Page page; page = tinfoClassRepository.findAll(new Specification() { @Override public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder cb) { List pl = new ArrayList(); pl.add(cb.notEqual(root.get("inprocess"), "4")); if(!ToolUtil.isNull(dto.getInfoname())){ pl.add(cb.like(root.get("infoname"), "%"+dto.getInfoname()+"%")); } if(!ToolUtil.isNull(dto.getInfotypename())){ pl.add(cb.like(root.get("infotypename"), "%"+dto.getInfotypename()+"%")); } if(!ToolUtil.isNull(dto.getSharetype())){ pl.add(cb.equal(root.get("sharetype"), dto.getSharetype())); } if(!ToolUtil.isNull(dto.getProvidename())){ pl.add(cb.like(root.get("providename"), "%"+dto.getProvidename()+"%")); } if(!ToolUtil.isNull(dto.getProvidebmname())){ pl.add(cb.like(root.get("providebmname"), "%"+dto.getProvidebmname()+"%")); } if(!ToolUtil.isNull(dto.getSourceid())){ pl.add(cb.equal(root.get("sourceid"), dto.getSourceid())); } if(dto.getHitchStatus()!=null){ if("1".equals(dto.getHitchStatus()+"")) pl.add(cb.equal(root.get("hitchStatus"), dto.getHitchStatus())); else { pl.add(cb.or(cb.equal(root.get("hitchStatus"), dto.getHitchStatus()),cb.isNull(root.get("hitchStatus")))); } } return cb.and(pl.toArray(new Predicate[0])); } }, request); List dataList = page.getContent(); List dtolsit = new ArrayList(); for (TinfoClass u : dataList) { dtolsit.add(new TinfoClassDto(u)); } pag.setPageResult(dtolsit); pag.setPageCount(page.getTotalPages()); pag.setPageTotal((int) page.getTotalElements()); return pag; } public void disableParent(String id) { TinfoClass info = tinfoClassRepository.findOne(id); if (info != null) { TinfoClass parent = tinfoClassRepository.findOne(info.getParentid()); if (parent != null) { tinfoClassRepository.updateImplementationState(parent.getId(), "2"); } } } public Pagination findTinfoClassYsList(final TinfoClassDto dto, Pagination pag,final User userInfo) { List orders = new ArrayList(); if(!ToolUtil.isNull(pag.getSortFiled())){ if("infocode".equals(pag.getSortFiled())){ if("desc".equals(pag.getSortType().toLowerCase())) { Order order_temp = new Order(Direction.DESC, "infocode"); orders.add(order_temp); } else { Order order_temp = new Order(Direction.ASC, "infocode"); orders.add(order_temp); } } else if("isopensocial".equals(pag.getSortFiled())){ if("desc".equals(pag.getSortType().toLowerCase())) { Order order_temp = new Order(Direction.DESC, "isopensocial"); orders.add(order_temp); } else { Order order_temp = new Order(Direction.ASC, "isopensocial"); orders.add(order_temp); } } else if("sharetype".equals(pag.getSortFiled())){ if("desc".equals(pag.getSortType().toLowerCase())) { Order order_temp = new Order(Direction.DESC, "sharetype"); orders.add(order_temp); } else { Order order_temp = new Order(Direction.ASC, "sharetype"); orders.add(order_temp); } } } Order order = new Order(Direction.DESC, "gjcheckstate"); Order order1 = new Order(Direction.DESC, "id"); Order order2 = new Order(Direction.DESC, "createdate"); orders.add(order); orders.add(order1); orders.add(order2); Sort sort = new Sort(orders); PageRequest request = new PageRequest(pag.getPageCurrentNum() - 1, pag.getPageSize(), sort); Page page; page = tinfoClassRepository.findAll(new Specification() { @Override public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder cb) { Set serRole = userInfo.getRoles(); boolean flag = false; for (Role role : serRole) { if(admin_id.equals(role.getRoleId())) flag = true; } List pl = new ArrayList(); pl.add(cb.equal(root.get("latestversion"), "1")); pl.add(cb.equal(root.get("inprocess"), "2")); if(!ToolUtil.isNull(dto.getInfoname())){ pl.add(cb.like(root.get("infoname"), "%"+dto.getInfoname()+"%")); } if(!ToolUtil.isNull(dto.getInfotypename())){ pl.add(cb.like(root.get("infotypename"), "%"+dto.getInfotypename()+"%")); } if(!ToolUtil.isNull(dto.getGlinfotypename())){ pl.add(cb.like(root.get("glinfotypename"), "%"+dto.getGlinfotypename()+"%")); } if(!ToolUtil.isNull(dto.getFltag())){ pl.add(cb.like(root.get("fltag"), "%"+dto.getFltag()+"%")); } if(!ToolUtil.isNull(dto.getSharetype())){ pl.add(cb.equal(root.get("sharetype"), dto.getSharetype())); } if(!ToolUtil.isNull(dto.getProvidename())){ pl.add(cb.like(root.get("providename"), "%"+dto.getProvidename()+"%")); } if(!ToolUtil.isNull(dto.getProvidebmname())){ pl.add(cb.like(root.get("providebmname"), "%"+dto.getProvidebmname()+"%")); } if(!ToolUtil.isNull(dto.getIsopensocial())){ pl.add(cb.equal(root.get("isopensocial"), dto.getIsopensocial())); } if(!ToolUtil.isNull(dto.getSharemodetypename())){ pl.add(cb.equal(root.get("sharemodetypename"), dto.getSharemodetypename())); } if(!ToolUtil.isNull(dto.getGjcheckstate())){ if(!"1".equals(dto.getHitchStatus()+"")) pl.add(cb.equal(root.get("gjcheckstate"), dto.getGjcheckstate())); } if(!ToolUtil.isNull(dto.getInfocode())){ pl.add(cb.like(root.get("infocode"), "%"+dto.getInfocode()+"%")); } if(!ToolUtil.isNull(dto.getIsglqz())){ pl.add(cb.equal(root.get("isglqz"), dto.getIsglqz())); } if(!ToolUtil.isNull(dto.getManagetype())){ pl.add(cb.equal(root.get("managetype"), dto.getManagetype())); } if(dto.getHitchStatus()!=null){//待挂接 已挂接 if("1".equals(dto.getHitchStatus()+"")) pl.add(cb.equal(root.get("hitchStatus"), dto.getHitchStatus())); else { pl.add(cb.or(cb.equal(root.get("hitchStatus"), dto.getHitchStatus()),cb.isNull(root.get("hitchStatus")))); } } //起始时间 if (!ToolUtil.isNull(dto.getStartdate())) { pl.add(cb.greaterThanOrEqualTo(root. get("updatetime"),dto.getStartdate())); } // 结束时间 if (!ToolUtil.isNull(dto.getEnddate())) { pl.add(cb.lessThanOrEqualTo(root. get("updatetime"), dto.getEnddate()+" 23:59:59")); } if(!flag){ List pl2 = new ArrayList(); pl2.add(cb.equal(root.get("creator"), userInfo.getUserId())); for(Dept dept:userInfo.getDepts()){ pl2.add(cb.equal(root.get("providebmcode"), dept.getDeptId())); String haszgbm="0"; for(Role role:userInfo.getRoles()){ if(zgbmgl_role.contains(role.getRoleId())||zgbmbz_role.contains(role.getRoleId())){ haszgbm="1"; break; } } if("1".equals(haszgbm)) { pl2.add(cb.equal(root.get("xzqhcode"), dept.getXzqhcode())); } } pl.add(cb.or(pl2.toArray(new Predicate[0]))); } return cb.and(pl.toArray(new Predicate[0])); } }, request); List dataList = page.getContent(); List dtolsit = new ArrayList(); for (TinfoClass u : dataList) { TinfoClassDto temp = new TinfoClassDto(u); if (StrUtil.isNotBlank(u.getParentid())) { TinfoClass parent = tinfoClassRepository.findByPid(u.getParentid()); if (parent != null && "2".equals(parent.getImplementationState())) { temp.setParentState(2); } else { temp.setParentState(1); } } dtolsit.add(temp); } pag.setPageResult(dtolsit); pag.setPageCount(page.getTotalPages()); pag.setPageTotal((int) page.getTotalElements()); return pag; } public Pagination findTinfoClassTqList(final TinfoClassDto dto, Pagination pag,final User userInfo) { List orders = new ArrayList(); if(!ToolUtil.isNull(pag.getSortFiled())){ if("infocode".equals(pag.getSortFiled())){ if("desc".equals(pag.getSortType().toLowerCase())) { Order order_temp = new Order(Direction.DESC, "infocode"); orders.add(order_temp); } else { Order order_temp = new Order(Direction.ASC, "infocode"); orders.add(order_temp); } } else if("isopensocial".equals(pag.getSortFiled())){ if("desc".equals(pag.getSortType().toLowerCase())) { Order order_temp = new Order(Direction.DESC, "isopensocial"); orders.add(order_temp); } else { Order order_temp = new Order(Direction.ASC, "isopensocial"); orders.add(order_temp); } } else if("sharetype".equals(pag.getSortFiled())){ if("desc".equals(pag.getSortType().toLowerCase())) { Order order_temp = new Order(Direction.DESC, "sharetype"); orders.add(order_temp); } else { Order order_temp = new Order(Direction.ASC, "sharetype"); orders.add(order_temp); } } } Order order = new Order(Direction.DESC, "disablestate"); Order order1 = new Order(Direction.DESC, "id"); Order order2 = new Order(Direction.DESC, "createdate"); orders.add(order); orders.add(order1); orders.add(order2); Sort sort = new Sort(orders); PageRequest request = new PageRequest(pag.getPageCurrentNum() - 1, pag.getPageSize(), sort); Page page; page = tinfoClassRepository.findAll(new Specification() { @Override public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder cb) { List pl = new ArrayList(); pl.add(cb.equal(root.get("latestversion"), "1")); pl.add(cb.or(cb.equal(root.get("inprocess"), "2"),cb.equal(root.get("inprocess"), "5"))); if(!ToolUtil.isNull(dto.getInfoname())){ pl.add(cb.like(root.get("infoname"), "%"+dto.getInfoname()+"%")); } if(!ToolUtil.isNull(dto.getInfotypename())){ pl.add(cb.like(root.get("infotypename"), "%"+dto.getInfotypename()+"%")); } if(!ToolUtil.isNull(dto.getSharetype())){ pl.add(cb.equal(root.get("sharetype"), dto.getSharetype())); } if(!ToolUtil.isNull(dto.getProvidename())){ pl.add(cb.like(root.get("providename"), "%"+dto.getProvidename()+"%")); } if(!ToolUtil.isNull(dto.getProvidebmname())){ pl.add(cb.like(root.get("providebmname"), "%"+dto.getProvidebmname()+"%")); } if(!ToolUtil.isNull(dto.getIsopensocial())){ pl.add(cb.like(root.get("isopensocial"), "%"+dto.getIsopensocial()+"%")); } if(!ToolUtil.isNull(dto.getFltag())){ pl.add(cb.like(root.get("fltag"), "%"+dto.getFltag()+"%")); } if(!ToolUtil.isNull(dto.getInfocode())){ pl.add(cb.like(root.get("infocode"), "%"+dto.getInfocode()+"%")); } //判断停用情况的值是否为空,若为空,则默认查询停用审核中的状态 if(!ToolUtil.isNull(dto.getDisablestate())){ pl.add(cb.like(root.get("disablestate"), "%"+dto.getDisablestate()+"%")); } //起始时间 if (!ToolUtil.isNull(dto.getStartdate())) { pl.add(cb.greaterThanOrEqualTo(root. get("updatetime"),dto.getStartdate())); } // 结束时间 if (!ToolUtil.isNull(dto.getEnddate())) { pl.add(cb.lessThanOrEqualTo(root. get("updatetime"), dto.getEnddate()+" 23:59:59")); } if(dto.getHitchStatus()!=null){//待挂接 已挂接 if("1".equals(dto.getHitchStatus()+"")) pl.add(cb.equal(root.get("hitchStatus"), dto.getHitchStatus())); else { pl.add(cb.or(cb.equal(root.get("hitchStatus"), dto.getHitchStatus()),cb.isNull(root.get("hitchStatus")))); } } if(!ToolUtil.isNull(dto.getInprocess())){ pl.add(cb.equal(root.get("inprocess"),dto.getInprocess())); } Set serRole = userInfo.getRoles(); boolean flag = false; boolean zgbm =false; for (Role role : serRole) { if(admin_id.equals(role.getRoleId())) flag = true; if(zgbmgl_role.equals(role.getRoleId())) zgbm = true; } if(!flag){ In in = cb.in(root.get("xzqhcode")); In in2 = cb.in(root.get("providebmcode")); for (Dept dept : userInfo.getDepts()) { in.value(dept.getXzqhcode()); in2.value(dept.getDeptId()); } if(userInfo.getDepts().size()>0){ if(zgbm) { pl.add(in); } else { pl.add(in2); } } } return cb.and(pl.toArray(new Predicate[0])); } }, request); List dataList = page.getContent(); List dtolsit = new ArrayList(); for (TinfoClass u : dataList) { dtolsit.add(new TinfoClassDto(u)); } pag.setPageResult(dtolsit); pag.setPageCount(page.getTotalPages()); pag.setPageTotal((int) page.getTotalElements()); return pag; } public Pagination findDataMetaChooselist(final TdataMetaDto dto, Pagination pag) { List orders = new ArrayList(); Order order1 = new Order(Direction.DESC, "id"); orders.add(order1); Order order2 = new Order(Direction.DESC, "metaname"); orders.add(order2); Sort sort = new Sort(orders); PageRequest request = new PageRequest(pag.getPageCurrentNum() - 1, pag.getPageSize(), sort); Page page; page = tdataMetaRepository.findAll(new Specification() { @Override public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder cb) { List pl = new ArrayList(); pl.add(cb.equal(root.get("state"),3)); if(dto.getDatacode()!=null&&!"".equals(dto.getDatacode())){ pl.add(cb.equal(root.get("datacode"),dto.getDatacode())); } if(dto.getMetaname()!=null&&!"".equals(dto.getMetaname())){ pl.add(cb.like(root.get("metaname"),"%"+dto.getMetaname()+"%")); } return cb.and(pl.toArray(new Predicate[0])); } }, request); List dataList = page.getContent(); List dtolsit = new ArrayList(); for (TdataMeta u : dataList) { dtolsit.add(new TdataMetaDto(u)); } pag.setPageResult(dtolsit); pag.setPageCount(page.getTotalPages()); pag.setPageTotal((int) page.getTotalElements()); return pag; } public String getPrecodeByInfoTypeid(String infotypeid) { String result=""; List> list=new ArrayList>(); if("oracle".equals(database_type)){ String sql="select rescode from t_res_classify start with resid=? connect by prior presid=resid "; list = jdbcTemplate.queryForList(sql, new Object[]{infotypeid}); } else if("mysql".equals(database_type)){ String sql="select rescode,presid from t_res_classify where resid=?"; list = jdbcTemplate.queryForList(sql, new Object[]{infotypeid}); List> templist=new ArrayList>(); templist=list; while(templist!=null&&templist.size()>0){ templist=jdbcTemplate.queryForList(sql, new Object[]{templist.get(0).get("presid")}); list.addAll(templist); } } int length=0; if(list!=null&&list.size()>=3){ length=list.size(); } if(length!=0){ Map map1=list.get(length-1); Map map2=list.get(length-2); Map map3=list.get(length-3); result=map1.get("rescode").toString()+map2.get("rescode").toString()+map3.get("rescode").toString(); } return result; } // @Cacheable(value="tinfoClassCache",key = "#root.targetClass+#id") public TinfoClassDto findTinfoClassById(String id) { // TODO Auto-generated method stub if(id==null){ return null; } TinfoClass info = tinfoClassRepository.findOne(id); if(info!=null){ TinfoClassDto dto = new TinfoClassDto(info); return dto; } return null; } public TinfoClass findTinfoClassById2(String id) { // TODO Auto-generated method stub if(id==null){ return null; } TinfoClass info = tinfoClassRepository.findOne(id); if(info!=null){ return info; } return null; } //@CachePut(value = "tinfoClassCache", key = "#root.targetClass + #result.id") public TinfoClassDto saveTinfoClass(TinfoClass result) { // TODO Auto-generated method stub TinfoClass info = tinfoClassRepository.saveAndFlush(result); TinfoClassDto dto = new TinfoClassDto(info); List tshareApplyList = new ArrayList<>(); if(info.getTshareApplyList()!=null){ for(TshareApply app:info.getTshareApplyList()){ tshareApplyList.add(app); } dto.setTshareApplyList(tshareApplyList); } List tinfoclassResList = new ArrayList<>(); if(info.getTinfoclassResList()!=null){ for(TinfoclassRes app:info.getTinfoclassResList()){ tinfoclassResList.add(app); } dto.setTinfoclassResList(tinfoclassResList); } List tinfoclassDatametaList = new ArrayList<>(); if(info.getTinfoclassDatametaList()!=null){ for(TinfoclassDatameta app:info.getTinfoclassDatametaList()){ tinfoclassDatametaList.add(app); } dto.setTinfoclassDatametaList(info.getTinfoclassDatametaList()); } return dto; } public List> resInfo(String sql,String deptid) { List paramList=new ArrayList(); 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> infoList = jdbcTemplate.queryForList(sql, args); return infoList; } public Pagination findTinfoClassresClassifyList(TinfoClassDto dto,String resid, Pagination pag,User userInfo) { StringBuffer sql=new StringBuffer("select p.isglqz,p.fltag,p.managetype, p.isopensocial, p.id,p.infocode,p.infoname,p.infotypename,p.providename,p.providebmname,p.sharetype,p.sourceid,p.versionid,p.subversionid,p.updatetime,p.hitch_status,p.sharemodetypename,p.bgstatus from t_infoclass p where p.latestversion='1' and p.inprocess='2' and (p.disablestate is null or p.disablestate!='1') "); List paramList=new ArrayList(); if(!ToolUtil.isNull(resid)){ if("oracle".equals(database_type)){ paramList.add(resid); // paramList.add(resid);//union SELECT q.resid,q.tinfoclassid FROM t_infoclass_res_detail q where q.resid=? sql=new StringBuffer("SELECT p.isopensocial,P . ID,p.sharemodetypename,P .infocode,P .infoname,P .infotypename,P .providename,P .providebmname,P .sharetype,P .sourceid,p.versionid,p.updatetime,p.hitch_status ") .append(" FROM t_infoclass P,(SELECT resid,'' tinfoclassid FROM t_res_classify") .append(" WHERE state = '0' START WITH resid = ? CONNECT BY PRIOR resid = presid") .append(" ) w WHERE P .latestversion = '1'") .append(" AND P .inprocess = '2' and ((w.resid=p.infotypeid and w.tinfoclassid is null) or (w.resid=p.infotypeid and p.id=w.tinfoclassid)) "); } else if("mysql".equals(database_type)){ //获取到当前分类的所有子节点 String lastResIds="('"+resid+"',"; List> menuTreeList=new ArrayList>(); String sql2="select resid from t_res_classify where presid=?"; menuTreeList = resInfo(sql2,resid); List> templist=menuTreeList; Map map = new HashMap(); while(templist!=null&&templist.size()>0){// sql2="select resid from t_res_classify where presid in "; String deptids=""; for(Map info:templist){ deptids+="'"+info.get("resid")+"'"+","; map.put((String) info.get("resid"), info.get("resid")); } if(deptids.length()>1){ deptids=deptids.substring(0, deptids.length()-1); sql2=sql2+"("+deptids+")"; } templist = resInfo(sql2,""); for(Map info:templist){ map.put((String) info.get("resid"), info.get("resid")); } } for (Map.Entry entry : map.entrySet()) { lastResIds=lastResIds+"'"+entry.getValue()+"'"+","; } if(lastResIds.length()>1){ lastResIds=lastResIds.substring(0, lastResIds.length()-1); lastResIds=lastResIds+")"; } //获取资源所属分类 sql.append("and ( p.infotypeid in ").append(lastResIds).append(" )");//or p.id in (SELECT q.tinfoclassid FROM t_infoclass_res_detail q where q.resid=?) //paramList.add(resid); } // } String zfbm="否"; if(userInfo.getDepts()!=null) for(Dept dept:userInfo.getDepts()) { if(dept.getDeptProperty()!=null&&"政务部门".equals(dept.getDeptProperty())) { zfbm="是"; } } if(!ToolUtil.isNull(dto.getInfoname())){ paramList.add("%"+dto.getInfoname()+"%"); sql.append(" and p.infoname like ? "); } if(!ToolUtil.isNull(dto.getInfocode())){ paramList.add(dto.getInfocode()); sql.append(" and p.infocode = ? "); } if(!ToolUtil.isNull(dto.getIsglqz())){ paramList.add(dto.getIsglqz()); sql.append(" and p.isglqz = ? "); } if(!ToolUtil.isNull(dto.getManagetype())){ paramList.add(dto.getManagetype()); sql.append(" and p.managetype = ? "); } if(!ToolUtil.isNull(dto.getInfotypename())){ paramList.add("%"+dto.getInfotypename()+"%"); sql.append(" and p.infotypename like ? "); } if(!ToolUtil.isNull(dto.getFltag())){ paramList.add("%"+dto.getFltag()+"%"); sql.append(" and p.fltag like ? "); } if(!ToolUtil.isNull(dto.getSharerange())){ paramList.add(dto.getSharerange()); sql.append(" and p.sharerange = ? "); } if(!ToolUtil.isNull(dto.getGlinfotypename())){ paramList.add("%"+dto.getGlinfotypename()+"%"); sql.append(" and p.glinfotypename like ? "); } if(!ToolUtil.isNull(dto.getProvidename())){ paramList.add("%"+dto.getProvidename()+"%"); sql.append(" and p.providename like ? "); } if(!ToolUtil.isNull(dto.getProvidebmname())){ paramList.add("%"+dto.getProvidebmname()+"%"); sql.append(" and p.providebmname like ? "); } if(!ToolUtil.isNull(dto.getIsopensocial())){ paramList.add(dto.getIsopensocial()); sql.append(" and p.isopensocial = ? "); } if(!ToolUtil.isNull(dto.getSharetype())){ if("否".equals(zfbm)) { if("1".equals(dto.getSharetype())) { sql.append(" and p.sharetype in ('1','2') "); } else if("2".equals(dto.getSharetype())) { sql.append(" and p.sharetype = 'zfbm' "); } } else { paramList.add(dto.getSharetype()); sql.append(" and p.sharetype = ? "); } } if(dto.getHitchStatus()!=null){ paramList.add(dto.getHitchStatus()+""); if("1".equals(dto.getHitchStatus()+"")) sql.append(" and p.hitch_status = ? "); else { sql.append(" and (p.hitch_status = ? or p.hitch_status is null) "); } } /*//发布时间 if(dto.getUpdatetime()!=null){ paramList.add(dto.getUpdatetime()); sql.append("and p.updatetime =? "); }*/ //起始时间 if(!ToolUtil.isNull(dto.getStartdate())){ paramList.add(dto.getStartdate()); sql.append("and p.updatetime >= ?"); } //结束时间 if(!ToolUtil.isNull(dto.getEnddate())){ paramList.add(dto.getEnddate()+" 23:59:59"); sql.append("and p.updatetime <= ?"); } Object[] args = new Object[]{}; int length = paramList.size(); if(length>0){ args=new Object[length]; for(int i=0;i(){ @Override public TinfoClassDto mapRow(ResultSet rs, int rowNum) throws SQLException { TinfoClassDto info = new TinfoClassDto(); info.setId(rs.getString("id")); info.setInfocode(rs.getString("infocode")); info.setInfoname(rs.getString("infoname")); info.setInfotypename(rs.getString("infotypename")); info.setProvidename(rs.getString("providename")); info.setProvidebmname(rs.getString("providebmname")); info.setSharetype(rs.getString("sharetype")); info.setSourceid(rs.getString("sourceid")); info.setVersionid(rs.getInt("versionid")); info.setSubversionid(rs.getInt("subversionid")); info.setUpdatetime(rs.getString("updatetime")); info.setIsopensocial(rs.getString("isopensocial")); info.setHitchStatus(rs.getInt("hitch_status")); info.setSharemodetypename(rs.getString("sharemodetypename")); info.setIsglqz(rs.getString("isglqz")); info.setBgstatus(rs.getString("bgstatus")); info.setFltag(rs.getString("fltag")); info.setManagetype(rs.getString("managetype")); return info; } },jdbcTemplate,database_type); return pag; } public Pagination findTinfoClassZcCheckList(TinfoClassDto dto,VtasklistDto task, Pagination pag,User userInfo) { StringBuffer sql=new StringBuffer("select p.id,p.infocode,p.infoname,p.infotypename,p.providename,p.providebmname,p.isopensocial,p.sharetype,t.* from v_tasklist t,t_infoclass p where t.PROC_INST_ID=p.processid and p.inprocess!='4'"); List paramList=new ArrayList(); if(!ToolUtil.isNull(dto.getInfoname())){ paramList.add("%"+dto.getInfoname()+"%"); sql.append(" and p.infoname like ? "); } if(!ToolUtil.isNull(dto.getInfotypename())){ paramList.add("%"+dto.getInfotypename()+"%"); sql.append(" and p.infotypename like ? "); } if(!ToolUtil.isNull(dto.getSharetype())){ paramList.add(dto.getSharetype()); sql.append(" and p.sharetype = ? "); } if(!ToolUtil.isNull(dto.getIsopensocial())){ paramList.add(dto.getIsopensocial()); sql.append(" and p.isopensocial = ? "); } if(!ToolUtil.isNull(dto.getProvidebmname())){ paramList.add("%"+dto.getProvidebmname()+"%"); sql.append(" and p.providebmname like ? "); } if(!ToolUtil.isNull(task.getActName())){ paramList.add("%"+task.getActName()+"%"); sql.append(" and t.act_name like ? "); } Set serRole = userInfo.getRoles(); boolean flag = false; for (Role role : serRole) { if(admin_id.equals(role.getRoleId())) flag = true; } if(!flag){ sql.append(" and ( t.assignee ='").append(userInfo.getUserId()).append("' or t.candidate='").append(userInfo.getUserId()).append("')");} sql.append(" order by t.candidate desc "); Object[] args = new Object[]{}; int length = paramList.size(); if(length>0){ args=new Object[length]; for(int i=0;i(){ @Override public TinfoClassDto mapRow(ResultSet rs, int rowNum) throws SQLException { TinfoClassDto info = new TinfoClassDto(); VtasklistDto task = new VtasklistDto(); info.setId(rs.getString("id")); info.setInfocode(rs.getString("infocode")); info.setInfoname(rs.getString("infoname")); info.setInfotypename(rs.getString("infotypename")); info.setProvidename(rs.getString("providename")); info.setProvidebmname(rs.getString("providebmname")); info.setIsopensocial(rs.getString("isopensocial")); info.setSharetype(rs.getString("sharetype")); task.setActId(rs.getString("act_id")); task.setActName(rs.getString("act_name")); task.setAssignee(rs.getString("assignee")); task.setCandidate(rs.getString("candidate")); task.setProcinstId(rs.getString("proc_inst_id")); task.setTaskId(rs.getString("task_id")); task.setFormkey(rs.getString("form_key")); task.setTaskstart(rs.getString("create_time")); UserDto user=new UserDto(); if(rs.getString("assignee")!=null){ user = uiservice.findById(rs.getString("assignee")); } else if(rs.getString("candidate")!=null){ user = uiservice.findById(rs.getString("candidate")); } if(user!=null) task.setAssigneeName(user.getUserName()); info.setVtaskDto(task); return info; } },jdbcTemplate,database_type); return pag; } public Pagination findDelayInfoList(DelayInfo dto, Pagination pag,User userInfo) { StringBuffer sql=new StringBuffer("select p.providebmcode,p.providebmname,q.num datasharenum,w.num servicesharenum from bm_delay p " + "left join " + "datashare_bm_delay q " + "on p.providebmcode=q.providebmcode " + "left join " + "serviceshare_bm_delay w " + "on p.providebmcode=w.providebmcode "); List paramList=new ArrayList(); if(!ToolUtil.isNull(dto.getProvidebmname())){ paramList.add("%"+dto.getProvidebmname()+"%"); sql.append(" where p.providebmname like ? "); } Object[] args = new Object[]{}; int length = paramList.size(); if(length>0){ args=new Object[length]; for(int i=0;i(){ @Override public DelayInfo mapRow(ResultSet rs, int rowNum) throws SQLException { DelayInfo info = new DelayInfo(); info.setProvidebmcode(rs.getString("providebmcode")); info.setProvidebmname(rs.getString("providebmname")); info.setDatasharenum(rs.getString("datasharenum")==null?"0":rs.getString("datasharenum")); info.setServicesharenum(rs.getString("servicesharenum")==null?"0":rs.getString("servicesharenum")); List> maplist= jdbcTemplate.queryForList("select p.id from t_messageinfo p where substr(sendtime,1,10)=? and providebmcode=?", new Object[] { ToolUtil.date2Str(new Date(),"yyyy-MM-dd") ,rs.getString("providebmcode") }); if(maplist!=null&&maplist.size()>0) { info.setIssend("1"); } else { info.setIssend("0"); } return info; } },jdbcTemplate,database_type); return pag; } public Pagination findTinfoClassMyYsList(TinfoClassDto dto,VtasklistDto task, Pagination pag,User userInfo) { StringBuffer sql=new StringBuffer("select p.providebmname, p.isopensocial,p.id,p.infocode,p.infoname,p.infotypename,p.providename,p.sharetype,t.* from V_HISTASKLIST_T t,t_infoclass p where t.PROINSTID=p.processid and p.id=t.busid "); List paramList=new ArrayList(); if(!ToolUtil.isNull(dto.getInfoname())){ paramList.add("%"+dto.getInfoname()+"%"); sql.append(" and p.infoname like ? "); } if(!ToolUtil.isNull(dto.getSharetype())){ paramList.add(dto.getSharetype()); sql.append(" and p.sharetype = ? "); } if(!ToolUtil.isNull(dto.getInfotypename())){ paramList.add("%"+dto.getInfotypename()+"%"); sql.append(" and p.infotypename like ? "); } if(!ToolUtil.isNull(dto.getProvidename())){ paramList.add("%"+dto.getProvidename()+"%"); sql.append(" and p.providename like ? "); } if(!ToolUtil.isNull(task.getActName())){ paramList.add("%"+task.getActName()+"%"); sql.append(" and t.taskname like ? "); } if(!ToolUtil.isNull(dto.getProvidebmname())){ paramList.add("%"+dto.getProvidebmname()+"%"); sql.append(" and p.providebmname like ? "); } sql.append(" and t.taskman ='").append(userInfo.getUserId()).append("'"); sql.append(" order by t.taskend desc"); Object[] args = new Object[]{}; int length = paramList.size(); if(length>0){ args=new Object[length]; for(int i=0;i(){ @Override public TinfoClassDto mapRow(ResultSet rs, int rowNum) throws SQLException { TinfoClassDto info = new TinfoClassDto(); HisTaskDto task = new HisTaskDto(); info.setId(rs.getString("id")); info.setInfocode(rs.getString("infocode")); info.setInfoname(rs.getString("infoname")); info.setInfotypename(rs.getString("infotypename")); info.setProvidename(rs.getString("providename")); info.setProvidebmname(rs.getString("providebmname")); info.setIsopensocial(rs.getString("isopensocial")); info.setSharetype(rs.getString("sharetype")); task.setBusid(rs.getString("busid")); task.setTaskid(rs.getString("taskid")); task.setProinstid(rs.getString("proinstid")); task.setTaskname(rs.getString("taskname")); String manname=rs.getString("manname"); if(!ToolUtil.isNull(manname)&&manname.split(";").length>1){ task.setManname(manname.split(";")[0]); } task.setTaskstart(rs.getString("taskstart")); task.setTaskend(rs.getString("taskend")); task.setResult(rs.getString("taskmessage").split("outcome")[0]); task.setOpinion(rs.getString("taskmessage").split("outcome")[1]); info.setHisTaskDto(task); return info; } },jdbcTemplate,database_type); return pag; } public List> findExcelData(String sql, Object[] args,Pagination> pag,int lastIndex,int startIndex,final String resulttype) { pag = pag.findPagination(sql.toString(),pag,args, new RowMapper>(){ @Override public Map mapRow(ResultSet rs, int rowNum) throws SQLException { Map dataMap = new HashMap(); if("1".equals(resulttype)){ dataMap.put("infocode", rs.getString("infocode")); dataMap.put("infoname", rs.getString("infoname")); dataMap.put("formattypename", rs.getString("formattypename")); if("1".equals(rs.getString("sharetype"))){ dataMap.put("sharetype","有条件共享"); } else if("2".equals(rs.getString("sharetype"))){ dataMap.put("sharetype","无条件共享"); } else if("3".equals(rs.getString("sharetype"))){ dataMap.put("sharetype","不予共享"); } dataMap.put("shareconditions",rs.getString("shareconditions")); dataMap.put("sharemodename",rs.getString("sharemodename")); dataMap.put("sharemodetypename",rs.getString("sharemodetypename")); dataMap.put("isopensocial",rs.getString("isopensocial")); dataMap.put("opencondition",rs.getString("opencondition")); dataMap.put("updatecycle",rs.getString("updatecycle")); dataMap.put("systeminfo",rs.getString("systeminfo")); //获取关联事项 List> itemnamelist=jdbcTemplate.queryForList("select itemname from T_BUSINESSITEM_INFOCLASS p where p.INFOCLASSID=?", new Object[]{rs.getString("id")}); String itemname=""; for(Map itemnamemap:itemnamelist){ itemname+=itemnamemap.get("itemname"); } dataMap.put("itemname",itemname); dataMap.put("managetype",rs.getString("managetype")); dataMap.put("bz",""); dataMap.put("datarange",rs.getString("datarange")); dataMap.put("providename",rs.getString("providename")); dataMap.put("providebmname",rs.getString("providebmname")); dataMap.put("infotypename",rs.getString("infotypename")); dataMap.put("versionid",rs.getString("versionid")); String inprocess = rs.getString("inprocess"); if("0".equals(inprocess)){ dataMap.put("taskname","未提交"); } else if("1".equals(inprocess)){ dataMap.put("taskname",rs.getString("taskname")); } else if("2".equals(inprocess)){ dataMap.put("taskname","已发布"); } else if("3".equals(inprocess)){ dataMap.put("taskname","审核不通过"); } else if("4".equals(inprocess)){ dataMap.put("taskname","已作废"); } else if("5".equals(inprocess)){ dataMap.put("taskname","停用"); } if("1".equals(rs.getString("hitch_status"))){ dataMap.put("hitchstatus","已挂接"); } else{ dataMap.put("hitchstatus","未挂接"); } dataMap.put("hitchdate",rs.getString("hitchdate")); if("2".equals(inprocess)||"5".equals(inprocess)){ dataMap.put("releasedate",rs.getString("updatetime")); } dataMap.put("createdate",rs.getString("createdate")); List> resnamelist=jdbcTemplate.queryForList("select q.resname resname from T_infoclass_Res p,T_RES_CLASSIFY q where p.TINFOCLASSID=? and q.RESID=p.resid", new Object[]{rs.getString("id")}); String resname=""; for(Map resnamemap:resnamelist){ resname+=resnamemap.get("resname"); } dataMap.put("resname",resname); } else if("2".equals(resulttype)){ //信息资源编码 dataMap.put("infocode", rs.getString("infocode")); //信息资源名称 dataMap.put("infoname", rs.getString("infoname")); //信息资源摘要 dataMap.put("infoabstracts", rs.getString("infoabstracts")); //信息资源格式 dataMap.put("formattypename", rs.getString("formattypename")); //信息项编码 dataMap.put("xxxbm", rs.getString("xxxbm")); //信息项名称 dataMap.put("xxxmc", rs.getString("xxxmc")); //数据元编号 List> datacode=jdbcTemplate.queryForList("select datacode from t_datameta where id=?",new Object[]{rs.getString("datametaid")}); if(datacode!=null&&!datacode.isEmpty()){ dataMap.put("datametaid", datacode.get(0).get("datacode")); } else{ dataMap.put("datametaid", ""); } //数据说明 dataMap.put("ranges", rs.getString("ranges")); dataMap.put("datasize", rs.getString("datasize")); dataMap.put("datatype_dis", rs.getString("datatype_dis")); //共享类型 if("1".equals(rs.getString("sharetype"))){ dataMap.put("sharetype","有条件共享"); } else if("2".equals(rs.getString("sharetype"))){ dataMap.put("sharetype","无条件共享"); } else if("3".equals(rs.getString("sharetype"))){ dataMap.put("sharetype","不予共享"); } //共享条件 dataMap.put("shareconditions", rs.getString("shareconditions")); //共享方式 dataMap.put("sharemodename", rs.getString("sharemodename")); dataMap.put("sharemodetypename", rs.getString("sharemodetypename")); //是否向社会开放 dataMap.put("isopensocial", rs.getString("isopensocial")); //开放条件 dataMap.put("opencondition", rs.getString("opencondition")); //更新周期 dataMap.put("updatecycle", rs.getString("updatecycle")); //信息资源格式 dataMap.put("subformattypename",rs.getString("subformattypename")); /*'' 关联信息系统,*/ //获取关联事项 List> itemnamelist=jdbcTemplate.queryForList("select itemname from T_BUSINESSITEM_INFOCLASS p where p.INFOCLASSID=?", new Object[]{rs.getString("id")}); String itemname=""; for(Map itemnamemap:itemnamelist){ itemname+=itemnamemap.get("itemname"); } dataMap.put("itemname",itemname); /*关联资源分类*/ List> resnamelist=jdbcTemplate.queryForList("select q.resname resname from T_infoclass_Res p,T_RES_CLASSIFY q where p.TINFOCLASSID=? and q.RESID=p.resid", new Object[]{rs.getString("id")}); String resname=""; for(Map resnamemap:resnamelist){ resname+=resnamemap.get("resname"); } dataMap.put("resname",resname); //管理方式 dataMap.put("managetype", rs.getString("managetype")); /*'' 备注*/ //数据范围 dataMap.put("datarange", rs.getString("datarange")); //提供处室 dataMap.put("providename", rs.getString("providename")); //提供部门 dataMap.put("providebmname", rs.getString("providebmname")); //资源分类 dataMap.put("infotypename", rs.getString("infotypename")); //版本号 dataMap.put("versionid", rs.getString("versionid")); //发布时间 dataMap.put("updatetime", rs.getString("updatetime")); if("1".equals(rs.getString("hitch_status"))){ dataMap.put("hitchstatus","已挂接"); } else{ dataMap.put("hitchstatus","未挂接"); } /*'' 关联分类*/ } return dataMap; } },jdbcTemplate,database_type, lastIndex, startIndex); return pag.getPageResult(); } //@CacheEvict(value = "tinfoClassCache", key = "#root.targetClass + #busId") public void updateTinfoClassStateById(String busId, String state) { // TODO Auto-generated method stub tinfoClassRepository.updateTinfoClassStateById(busId,state); } //导出Word public Map getData(String ids){ Map dataMap = new HashMap(); StringBuffer sql=new StringBuffer("SELECT ID,INFOCODE,INFOTYPENAME,INFONAME,PROVIDENAME,"); sql.append("CREDITNO, PROVIDEBMNAME, YWBMNAME, XZQHNAME,"); sql.append("FORMATTYPENAME, MANAGETYPE, INFOABSTRACTS, case when sharetype='1' then '有条件共享' when sharetype='2' then '无条件共享' else '不予共享' end SHARETYPE, ISOPENSOCIAL,"); sql.append("SHARECONDITIONS, UPDATECYCLE, SYSTEMINFO, DATARANGE,ISSECRET,SHAREMODENAME "); if("oracle".equals(database_type)){ sql.append("FROM T_INFOCLASS where instr(','||?||',',','||id||',')>0"); } else if ("mysql".equals(database_type)){ sql.append("FROM T_INFOCLASS where instr( concat(',', ?,',', ','), concat(',' , id , ',' )) >0"); } List> list=new ArrayList>(); List> xxxlist=new ArrayList>(); List> sjylist=new ArrayList>(); List> dmjlist=new ArrayList>(); list=jdbcTemplate.queryForList(sql.toString(), new Object[]{ids}); for(Map map:list){ //获取所有的信息项 xxxlist= jdbcTemplate.queryForList("select t.*,y.CODESET_ID from (select p.XXXMC,p.XXXBM,p.DATATYPE_DIS,q.DATACODE,p.SHARETYPE,p.ISOPENSOCIAL,p.DATASIZE,p.CODESETID from T_INFOCLASS_DATAMETA p left join t_datameta q on p.DATAMETAID=q.id where p.TINFOCLASSID=?) t left join T_CODESET y on t.CODESETID=y.id ORDER BY xxxbm asc",new Object[]{map.get("ID")}); sjylist= jdbcTemplate.queryForList("select distinct p.* from T_INFOCLASS_DATAMETA t,T_DATAMETA p where t.TINFOCLASSID=? and t.DATAMETAID=p.id ",new Object[]{map.get("ID")}); dmjlist= jdbcTemplate.queryForList("select distinct p.* from T_INFOCLASS_DATAMETA t,T_CODESET p where t.CODESETID=p.id and t.TINFOCLASSID=?",new Object[]{map.get("ID")}); for(Map temp:dmjlist){ temp.put("dmdetail", jdbcTemplate.queryForList("select * from T_CODESET_DETAIL t where t.fid=?",new Object[]{temp.get("ID")})); } map.put("xxxlist", xxxlist); map.put("sjylist", sjylist); map.put("dmjlist", dmjlist); //获取关联资源分类 List> resnamelist=jdbcTemplate.queryForList("select q.resname resname from T_infoclass_Res p,T_RES_CLASSIFY q where p.TINFOCLASSID=? and q.RESID=p.resid", new Object[]{map.get("ID")}); String resname=""; for(Map resnamemap:resnamelist){ resname+=resnamemap.get("resname"); } map.put("RESNAME",resname); //获取关联事项 List> itemnamelist=jdbcTemplate.queryForList("select itemname from T_BUSINESSITEM_INFOCLASS p where p.INFOCLASSID=?", new Object[]{map.get("ID")}); String itemname=""; for(Map itemnamemap:itemnamelist){ itemname+=itemnamemap.get("itemname"); } map.put("ITEMNAME",itemname); } dataMap.put("list",list); return dataMap; } public void saveSubcriInfo(String busId, User userInfo) { // TODO Auto-generated method stub TinfoClass info = tinfoClassRepository.findOne(busId); Subscribemanage subscri = subscribemanageRepository.findInfoByClassIdAndUserId(busId,userInfo.getUserId()); if(subscri==null){ subscri =new Subscribemanage(); subscri.setId(ToolUtil.getUUID()); } subscri.setInfoclassids(busId); subscri.setInfoclassnames(info.getInfoname()); subscri.setCreatename(userInfo.getUserName()); subscri.setCreatenameid(userInfo.getUserId()); subscri.setState("1"); subscri.setSubscribedate(ToolUtil.date2Str(new Date(), "yyyy-MM-dd HH:mm:ss")); subscribemanageRepository.save(subscri); } public Pagination findMySubscriList(TinfoClassDto dto, Pagination pag,User userInfo) { StringBuffer sql=new StringBuffer("select p.versionid,p.hitch_status,p.isopensocial, p.sourceid,p.id,p.infocode,p.infoname,p.infotypename,p.providename,p.providebmname,p.providezgname,p.sharetype from subscribemanage t,t_infoclass p where t.infoclassids=p.id and t.state='1' "); List paramList=new ArrayList(); if(!ToolUtil.isNull(dto.getInfoname())){ paramList.add("%"+dto.getInfoname()+"%"); sql.append(" and p.infoname like ? "); } if(!ToolUtil.isNull(dto.getInfocode())){ paramList.add("%"+dto.getInfocode()+"%"); sql.append(" and p.infocode like ? "); } if(!ToolUtil.isNull(dto.getInfotypename())){ paramList.add("%"+dto.getInfotypename()+"%"); sql.append(" and p.infotypename like ? "); } if(!ToolUtil.isNull(dto.getProvidebmname())){ paramList.add("%"+dto.getProvidebmname()+"%"); sql.append(" and p.providename like ? "); } if(!ToolUtil.isNull(dto.getSharetype())){ paramList.add(dto.getSharetype()); sql.append(" and p.sharetype = ? "); } if(!ToolUtil.isNull(dto.getIsopensocial())){ paramList.add(dto.getIsopensocial()); sql.append(" and p.isopensocial = ? "); } if(!ToolUtil.isNull(dto.getProvidezgname())){ paramList.add("%"+dto.getProvidezgname()+"%"); sql.append(" and p.providezgname like ? "); } //起始时间 if(!ToolUtil.isNull(dto.getStartdate())){ paramList.add(dto.getStartdate()); sql.append("and p.updatetime >= ?"); } //结束时间 if(!ToolUtil.isNull(dto.getEnddate())){ paramList.add(dto.getEnddate()+" 23:59:59"); sql.append("and p.updatetime <= ?"); } if(dto.getHitchStatus()!=null){ paramList.add(dto.getHitchStatus()+""); if("1".equals(dto.getHitchStatus()+"")) sql.append(" and p.hitch_status = ? "); else { sql.append(" and (p.hitch_status = ? or p.hitch_status is null) "); } } sql.append(" and t.createnameid ='").append(userInfo.getUserId()).append("'"); Object[] args = new Object[]{}; int length = paramList.size(); if(length>0){ args=new Object[length]; for(int i=0;i(){ @Override public TinfoClassDto mapRow(ResultSet rs, int rowNum) throws SQLException { TinfoClassDto info = new TinfoClassDto(); info.setId(rs.getString("id")); info.setInfocode(rs.getString("infocode")); info.setInfoname(rs.getString("infoname")); info.setInfotypename(rs.getString("infotypename")); info.setProvidename(rs.getString("providename")); info.setProvidezgname(rs.getString("providezgname")); info.setProvidebmname(rs.getString("providebmname")); info.setSharetype(rs.getString("sharetype")); info.setSourceid(rs.getString("sourceid")); info.setVersionid(rs.getInt("versionid")); info.setIsopensocial(rs.getString("isopensocial")); info.setHitchStatus(rs.getInt("hitch_status")); return info; } },jdbcTemplate,database_type); return pag; } public void unSubcri(String busId, User userInfo) { // TODO Auto-generated method stub subscribemanageRepository.unSubcri(busId,userInfo.getUserId(),ToolUtil.date2Str(new Date(), "yyyy-MM-dd HH:mm:ss")); } public List getAll(Vector v1, String id, String sourceid) { // TODO Auto-generated method stub StringBuffer sql=new StringBuffer("select id,infoname from t_infoclass " ); List infoList = new ArrayList(); List paramList=new ArrayList(); sql.append(" where id!=? and sourceid!=? "); paramList.add(id); paramList.add(sourceid); String s=""; for(String str:v1){ if(str.length()>1&&s.indexOf(str+"|")<0) s+=str+"|"; } if(!ToolUtil.isNull(s)){ if("oracle".equals(database_type)){ sql.append(" and REGEXP_LIKE(infoname, ?) "); paramList.add(s.substring(0, s.length()-1)+""); } else if("mysql".equals(database_type)){ sql.append("and infoname REGEXP ? "); paramList.add(s.substring(0, s.length()-1)+""); } } Object[] args = new Object[]{}; int length = paramList.size(); if(length>0){ args=new Object[length]; for(int i=0;i() { @Override public TinfoClassDto mapRow(ResultSet rs, int rowNum) throws SQLException { TinfoClassDto info = new TinfoClassDto(); info.setId(rs.getString("id")); info.setInfoname(rs.getString("infoname")); return info; } } ); return infoList; } //修改挂接上传文件信息 public void updateTinfoClassHitUp(TinfoClassDto info) { // TODO Auto-generated method stub tinfoClassRepository.updateTinfoClassHitUpById(info.getId(), info.getHitchUpAdress(), info.getHitchUpName(), info.getHitchSize()); } //修改挂接信息 public void updateTinfoClassHitInfoById(TinfoClassDto info, User userInfo) { // TODO Auto-generated method stub tinfoClassRepository.updateTinfoClassHitInfoById(info.getId(), info.getHitch(),userInfo.getUserName(),ToolUtil.date2Str(new Date(), "yyyy-MM-dd HH:mm:ss"),info.getDbid()); } public TinfoClass findTinfoClassByInfoCode(String infoCode) { // TODO Auto-generated method stub return tinfoClassRepository.findTinfoClassByInfoCode(infoCode); } public void syncSxmlInfo() { login(); } public void login(){ ObjectMapper mapper = new ObjectMapper(); Map paramsMap =new HashMap(); paramsMap.put("account", "gd_gxpt440000"); paramsMap.put("password", "28c9e2d831ab4e86747220b04de4d5a0"); paramsMap.put("zzjgdm", ""); paramsMap.put("app_key", "gd_gxpt"); paramsMap.put("app_secret", "FoZhPSOd9GOQExi5"); String requestURL = "http://19.224.1.97:8086/service"; String apiName = "sxml.security.login"; String version = "1.0.0"; String accessKey = "6b3131e4b91240b8bb3de475457f8ad2"; String securityKey = "8ElYku6j9DWjz3xt9ohc6VY/dxY="; String csbresult=""; try { csbresult = HttpCaller.changeCharset(HttpCaller.doPost(requestURL, apiName, version, paramsMap, accessKey, securityKey)); Map map; try { map = mapper.readValue(csbresult, Map.class); list_new_LocalDirectory2(map.get("access_token")+""); } catch (JsonParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (JsonMappingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (HttpCallerException e) { e.printStackTrace(); } } public void list_new_LocalDirectory2(String access_token) { ObjectMapper mapper = new ObjectMapper(); Calendar c = Calendar.getInstance(); c.setTime(new Date()); c.add(Calendar.DATE, -1); Date m = c.getTime(); Map paramsMap =new HashMap(); paramsMap.put("access_token", access_token); paramsMap.put("itemcode", ""); paramsMap.put("startdate", ToolUtil.date2Str(m, "yyyy-MM-dd")); paramsMap.put("enddate", ""); String requestURL = "http://19.224.1.97:8086/service"; String apiName = "sxml.local_directory.list_new_LocalDirectory"; String version = "1.0.0"; String accessKey = "6b3131e4b91240b8bb3de475457f8ad2"; String securityKey = "8ElYku6j9DWjz3xt9ohc6VY/dxY="; String csbresult=""; try { csbresult = HttpCaller.changeCharset(HttpCaller.doPost(requestURL, apiName, version, paramsMap, accessKey, securityKey)); if(csbresult.contains("SUCCESS")){ try { Map map = mapper.readValue(csbresult, Map.class); List maplist=(List) map.get("data"); int i=0; Sxcode sxcode=new Sxcode(); for(Map t:maplist){ sxcode.setCode(t.get("code")+""); sxcode.setFlag("0"); sxcodeRepository.saveAndFlush(sxcode); } } catch (IOException e) {// // TODO Auto-generated catch block e.printStackTrace(); } } } catch (HttpCallerException e) { e.printStackTrace(); } List> synlist=jdbcTemplate.queryForList("select code,flag from sxcode where flag='0' "); try { doReadList(synlist,access_token); } catch (InterruptedException | ExecutionException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void doReadList(List> list,String access_token) throws InterruptedException, ExecutionException{ /**接收集合各段的 执行的返回结果**/ List>>> futureList = new ArrayList>>>(); /**集合总条数**/ int size = list.size(); /**将集合切分的段数**/ int sunSum = 20; int listStart,listEnd; /***当总条数不足10条时 用总条数 当做线程切分值**/ if(sunSum > size){ sunSum = size; } /**定义子线程**/ SunSxmlCallable sunCallable; for (int i = 0; i < sunSum; i++) { /***计算切割 开始和结束**/ listStart = size / sunSum * i ; listEnd = size / sunSum * ( i + 1 ); /**最后一段线程会 出现与其他线程不等的情况**/ if(i == sunSum - 1){ listEnd = size; } /**线程切断**/ List> sunList = list.subList(listStart,listEnd); /**子线程初始化**/ sunCallable = new SunSxmlCallable(sunList,access_token,i); /***多线程执行***/ futureList.add(threadPoolTaskExecutor.submit(sunCallable)); } } public void saveXxxBm(String infocode, String id) { // TODO Auto-generated method stub List> list = jdbcTemplate.queryForList("select id,indexnum,xxxbm,glxxxid from t_infoclass_datameta where tinfoclassid=? order by indexnum ", new Object[]{id}); int j=0; int bm=0; for(Map map:list){ if(map.get("XXXBM")!=null&&!"".equals(map.get("XXXBM").toString())&&(map.get("glxxxid")==null||"".equals(map.get("glxxxid").toString()))){ String temp = map.get("XXXBM").toString(); try{ if(temp.length()>3){ if(Integer.valueOf(temp.substring(temp.length()-3, temp.length()))>bm){ bm = Integer.valueOf(temp.substring(temp.length()-3, temp.length())); } } } catch(NumberFormatException e){ } } } for(int i=0;i tablenameMap= jdbcTemplate.queryForMap("select infocode,versionid,infoname from t_infoclass where id=? ", new Object[]{infoclassid}); if(database_type.equals("mysql")){ sql.append("select p .isprimary, p .xxxmc, concat('F_' , replace (p .xxxbm, '/', '_')) field_name, p .datatype, p.datasize from t_infoclass_datameta p where p .tinfoclassid = ? ").append(sqlshareid).append(" order by xxxbm") ; } else{ sql.append("select p .isprimary, p .xxxmc, 'F_' || replace (p .xxxbm, '/', '_') field_name, p .datatype, p.datasize from t_infoclass_datameta p where p .tinfoclassid = ? ").append(sqlshareid).append(" order by xxxbm"); } String table_name=""; String infocode=String.valueOf(tablenameMap.get("infocode")==null?"":tablenameMap.get("infocode")); String versionid=String.valueOf(tablenameMap.get("versionid")==null?"":tablenameMap.get("versionid")); table_name="T_"+(infocode.replace("/", "_"));//+"_V"+versionid List> maplist = jdbcTemplate.queryForList(sql.toString(), new Object[]{infoclassid}); generatesql = ToolUtil.generateCreateTableSql(table_name,maplist,database,String.valueOf(tablenameMap.get("infoname"))); return generatesql; } public void generateGxwzinfo() { List> maplist = jdbcTemplate.queryForList("select infocode,infoname,providebmname,versionid,hitch_status from t_infoclass where latestversion='1' and inprocess='2'"); for(Map map:maplist){ String infocode=String.valueOf(map.get("infocode")); //判断是否存在infocode String table_name="T_"+(infocode.replace("/", "_"));//+"_V"+String.valueOf(map.get("versionid")) List> result=jdbcTemplate.queryForList("select catalog_table_name from GXWZ_INFOCLASS_CATALOG_REL where infoclass_code=? ",new Object[]{infocode}); if(result!=null&&result.size()>0){// if(String.valueOf(result.get(0).get("catalog_table_name")).contains(infocode.replace("/", "_"))){ jdbcTemplate.update( "update gxwz_infoclass_catalog_rel set infoclass_code=?,infoclass_name=?,infoclass_dept=?,catalog_table_name=?,ishangon=? where infoclass_code=?", new Object[]{ String.valueOf(map.get("infocode")),String.valueOf(map.get("infoname")),String.valueOf(map.get("providebmname")),table_name,String.valueOf(map.get("hitch_status")),String.valueOf(map.get("infocode")) }); } } else{ jdbcTemplate.update( "insert into gxwz_infoclass_catalog_rel ( infoclass_code,infoclass_name,infoclass_dept,catalog_table_name,ishangon) values (?,?,?,?,?) ", new Object[]{ String.valueOf(map.get("infocode")),String.valueOf(map.get("infoname")),String.valueOf(map.get("providebmname")),table_name,String.valueOf(map.get("hitch_status")) }); } } } public void updateInfocatalogJob(boolean isAll) { List> maplist=new ArrayList<>(); if(isAll) maplist = jdbcTemplate.queryForList("select id,infotypeid from t_infoclass "); else maplist = jdbcTemplate.queryForList("select id,infotypeid from t_infoclass where infocatalogcode is null"); for(Map map:maplist){ String infotypeid=String.valueOf(map.get("infotypeid")); String infocatalogcode=""; List> templist =jdbcTemplate.queryForList("select presid,rescode from t_res_classify where resid=?", new Object[]{infotypeid}); while(templist!=null&&templist.size()>0){ infocatalogcode=templist.get(0).get("rescode")+infocatalogcode; templist =jdbcTemplate.queryForList("select presid,rescode from t_res_classify where resid=?", new Object[]{templist.get(0).get("presid")}); } jdbcTemplate.update("update t_infoclass set infocatalogcode=? where id=?", new Object[]{infocatalogcode,map.get("id")}); } } public TinfoClassDto getDefaultInfoByUserId(String userId) { TinfoClassDto dto =new TinfoClassDto(); String sql="select t.dept_name,t.dept_id,t.ywbmid,t.ywbmcode,t.pdeptids,t.ywbmname,t.creditno,t.xzqhcode,t.xzqhid,t.xzqhname,getParentList(x.resid) resname,x.rescode,x.resid from (select q.dept_name,q.dept_id,q.ywbmcode,q.ywbmname,q.creditno,xzqhcode,xzqhid,xzqhname,ywbmid,q.pdeptids from dept_user p,deptinfo q where p.dept_id=q.dept_id and creditno is not null and user_id=?) t left join t_res_classify x on t.dept_id=x.deptid"; List> maplist=new ArrayList<>(); maplist=jdbcTemplate.queryForList(sql,new Object[] {userId}); if(maplist!=null&&maplist.size()>0) { Map map =maplist.get(0); if(ToolUtil.ToString(map.get("dept_name")).contains("c271fb9c6e7e4faab8d27c91352b597d")) { dto.setSharerange("市本级"); }else { dto.setSharerange("其他"); } dto.setProvidebmname(ToolUtil.ToString(map.get("dept_name"))); dto.setProvidebmcode(ToolUtil.ToString(map.get("dept_id"))); dto.setXzqhcode(ToolUtil.ToString(map.get("xzqhcode"))); dto.setXzqhid(ToolUtil.ToString(map.get("xzqhid"))); dto.setXzqhname(ToolUtil.ToString(map.get("xzqhname"))); dto.setCreditno(ToolUtil.ToString(map.get("creditno"))); dto.setInfotype(ToolUtil.ToString(map.get("rescode"))); dto.setInfotypeid(ToolUtil.ToString(map.get("resid"))); dto.setInfotypename(ToolUtil.ToString(map.get("resname")).replace("直辖市-天津市-", "").replace("市本级-", "")); dto.setYwbmcode(ToolUtil.ToString(map.get("ywbmcode"))); dto.setYwbmname(ToolUtil.ToString(map.get("ywbmname"))); dto.setYwbmid(ToolUtil.ToString(map.get("ywbmid"))); } return dto; } public void deptSynToBusiness() { List> maplist2 =jdbcTemplate.queryForList("select p.dept_id,q.id,q.code_code,q.code_name from deptinfo p,code q where p.xzqhid=q.id and (p.xzqhname!=q.code_name or p.xzqhcode!=q.code_code)"); for(Map map:maplist2) { jdbcTemplate.update("update deptinfo set xzqhname=?,xzqhid=?,xzqhcode=? where dept_id=?", new Object[] { map.get("code_name") ,map.get("id") ,map.get("code_code") ,map.get("dept_id") } ); } //信息类提供方部门修改 List> maplist = jdbcTemplate.queryForList("select distinct q.dept_name,q.dept_id,q.xzqhcode,q.xzqhname,q.ywbmname,q.ywbmcode,q.creditno from t_infoclass p,deptinfo q where p.providebmcode=q.dept_id and (p.providebmname!=q.dept_name or p.xzqhcode!=q.xzqhcode or p.ywbmcode!=q.ywbmcode or p.creditno!=q.creditno or q.xzqhname!=p.xzqhname or p.ywbmname!=q.ywbmname)"); for(Mapmap:maplist) { jdbcTemplate.update("update t_infoclass set providebmname=?,xzqhcode=?,xzqhname=?,ywbmname=?,ywbmcode=?,creditno=? where providebmcode=?", new Object[] { map.get("dept_name"),map.get("xzqhcode"),map.get("xzqhname"),map.get("ywbmname") ,map.get("ywbmcode"),map.get("creditno"),map.get("dept_id") } ); } //服务注册业务信息同步 List> mapfwzclist = jdbcTemplate.queryForList("select dept_id,dept_name from t_service_reginfo p,deptinfo q where p.provideid=q.dept_id and p.providename!=q.dept_name"); for(Mapmap:mapfwzclist) { jdbcTemplate.update("update t_service_reginfo set providename=? where provideid=?", new Object[] { map.get("dept_name"),map.get("dept_id") } ); } //共享申请信息同步 List> mapgxqlist = jdbcTemplate.queryForList("select dept_id,dept_name from t_shareapply p,deptinfo q where p.applydeptid=q.dept_id and p.applydeptname!=q.dept_name"); for(Mapmap:mapgxqlist) { jdbcTemplate.update("update t_shareapply set applydeptname=? where applydeptid=?", new Object[] { map.get("dept_name"),map.get("dept_id") } ); } //接口申请信息同步 List> mapjksqlist = jdbcTemplate.queryForList("select q.dept_id,q.dept_name from t_service_applyinfo p,deptinfo q where p.mingchengid=q.dept_id and p.mingcheng!=q.dept_name"); for(Mapmap:mapjksqlist) { jdbcTemplate.update("update t_service_applyinfo set mingcheng=? where mingchengid=?", new Object[] { map.get("dept_name"),map.get("dept_id") } ); } } public boolean xxxIsModified(String id, String parentid) { StringBuffer sql=new StringBuffer("select datatype,datasize,xxxmc,xxxbm,datametaid,metaname from t_infoclass_datameta where tinfoclassid=?"); List> infolist = jdbcTemplate.queryForList(sql.toString(),new Object[] {id}); List> parentlist = jdbcTemplate.queryForList(sql.toString(),new Object[] {parentid}); if(infolist==null) { infolist=new ArrayList<>(); } if(parentlist==null) { parentlist=new ArrayList<>(); } if(infolist.size()!=parentlist.size()) {//信息项个数不同,说明有增删 return true; } else { for(Map map:infolist) { boolean flag=true; if(map.get("xxxbm")==null||"".equals(String.valueOf(map.get("xxxbm")))){ return true; } else{ for(Map p_map:parentlist) { if(String.valueOf(map.get("datatype")==null?"":map.get("datatype")).equals(String.valueOf(p_map.get("datatype")==null?"":p_map.get("datatype"))) &&String.valueOf(map.get("datasize")==null?"":map.get("datasize")).equals(String.valueOf(p_map.get("datasize")==null?"":p_map.get("datasize"))) &&String.valueOf(map.get("xxxmc")==null?"":map.get("xxxmc")).equals(String.valueOf(p_map.get("xxxmc")==null?"":p_map.get("xxxmc"))) &&String.valueOf(map.get("datametaid")==null?"":map.get("datametaid")).equals(String.valueOf(p_map.get("datametaid")==null?"":p_map.get("datametaid"))) &&String.valueOf(map.get("metaname")==null?"":map.get("metaname")).equals(String.valueOf(p_map.get("metaname")==null?"":p_map.get("metaname")))){ flag=false; } /* if((String.valueOf(map.get("xxxbm")==null?"":map.get("xxxbm")).equals(String.valueOf(p_map.get("xxxbm")==null?"":p_map.get("xxxbm"))) && !String.valueOf(map.get("xxxmc")==null?"":map.get("xxxmc")).equals(String.valueOf(p_map.get("xxxmc")==null?"":p_map.get("xxxmc"))) )|| (!String.valueOf(map.get("xxxbm")==null?"":map.get("xxxbm")).equals(String.valueOf(p_map.get("xxxbm")==null?"":p_map.get("xxxbm"))) && String.valueOf(map.get("xxxmc")==null?"":map.get("xxxmc")).equals(String.valueOf(p_map.get("xxxmc")==null?"":p_map.get("xxxmc"))) ) ){ flag=false; } */ } if(flag) { return true; } } } return false; } } public void generateGlflJob() { List> maplist = jdbcTemplate.queryForList("select group_concat(q.resname) glfl,p.tinfoclassid id from t_infoclass_res p,t_res_classify q,t_infoclass z where p.resid=q.resid and z.glinfotypename is null and z.id=p.tinfoclassid group by p.tinfoclassid"); for(Map map:maplist) { jdbcTemplate.update("update t_infoclass set glinfotypename=? where id=?", new Object[] {map.get("glfl"),map.get("id")}); } List> glxtmaplist = jdbcTemplate.queryForList("select group_concat(systeminfo_name) systeminfo,infoclass_id from t_systeminfo_infoclass group by infoclass_id"); for(Map map:glxtmaplist) { jdbcTemplate.update("update t_infoclass set systeminfo=? where id=?", new Object[] {map.get("systeminfo"),map.get("infoclass_id")}); } List> maplist2 = jdbcTemplate.queryForList("select id,infoname,infocode,hitch_status,p.gjsj,p.gjr,p.gjrid from t_infoclass q,t_service_reginfo p where q.sharemodetypename='接口' and instr(p.classid,q.id)>0 and p.inprocess='2' and p.isgj='1' and q.hitch_status=0 "); for(Map map:maplist2) { jdbcTemplate.update("update t_infoclass q set q.hitch=?,q.hitchdate=?,q.hitchuser=?,q.hitch_size=?,q.hitch_status=?,q.hitch_up_adress=?,q.hitch_up_name=? where q.id=?", new Object[] { "", map.get("gjsj"), map.get("gjr"), 0, 1, "", "", map.get("id") } ); } } public void generateHitchJob() { List> maplist = jdbcTemplate.queryForList("select p.id,p.parentid,q.hitch,q.hitchdate,q.hitchuser,q.hitch_size,q.hitch_status,q.hitch_up_adress,q.hitch_up_name from t_infoclass p,t_infoclass q where p.latestversion='1' and p.inprocess='2' and p.gjcheckstate is null and (p.hitch_status is null or p.hitch_status=0) and p.parentid=q.id and p.versionid=q.versionid " + " and q.hitch_status=1"); for(Map map:maplist) { jdbcTemplate.update("update t_infoclass q set q.hitch=?,q.gjcheckstate=?,q.hitchdate=?,q.hitchuser=?,q.hitch_size=?,q.hitch_status=?,q.hitch_up_adress=?,q.hitch_up_name=? where q.id=?", new Object[] { map.get("hitch"), "2", map.get("hitchdate"), map.get("hitchuser"), map.get("hitch_size"), map.get("hitch_status"), map.get("hitch_up_adress"), map.get("hitch_up_name"), map.get("id") } ); } List> maplist2 = jdbcTemplate.queryForList("select p.id,p.parentid,p.infoname,q.infoname pinfoname from t_infoclass p,t_infoclass q where p.parentid=q.id and p.versionid=q.versionid and p.latestversion='1' and p.inprocess='2'"); for(Map map:maplist2) { jdbcTemplate.update("update t_service_reginfo set classid=REPLACE(classid,?,?),classname=REPLACE(classname,?,?)", new Object[] { map.get("parentid")+";", map.get("id")+";", map.get("pinfoname")+";", map.get("infoname")+";" } ); } } /*生成超时提醒信息 * */ public void generateDelayRemindInfo() { //信息类注册 TmessageInfo info=null; // List> maplist = jdbcTemplate.queryForList("select assignee,act_name,count(1) num from v_tasklist_delay p,t_infoclass q where p.proc_inst_id=q.processid group by assignee,act_name"); // for(Map map:maplist) { // info =new TmessageInfo(); // info.setId(ToolUtil.getUUID()); // info.setTitle(String.valueOf(map.get("act_name"))); // info.setContent("您有"+String.valueOf(map.get("num"))+"个信息类注册("+String.valueOf(map.get("act_name"))+")超时未处理,请及时到天津市信息资源目录系统进行处理"); // info.setSendtime(ToolUtil.date2Str(new Date(), "yyyy-MM-dd HH:mm:ss")); // info.setState("1"); // info.setReceiver(String.valueOf(map.get("assignee"))); // tmessageInfoService.saveInfo(info); // } //信息类共享申请 List> worklist = jdbcTemplate.queryForList("select workdate from workcalendar where date_format(`workcalendar`.`workdate`,'%Y-%m-%d')=? and iswork='0'", new Object[] {ToolUtil.date2Str(new Date(), "yyyy-MM-dd")}); if(worklist!=null&&worklist.size()>0) {//只有工作日才生成预警提醒任务 List> applylist = jdbcTemplate.queryForList("select assignee,act_name,count(1) num from v_tasklist_delay p,t_shareapply q where p.proc_inst_id=q.processid group by assignee,act_name"); for(Map map:applylist) { info =new TmessageInfo(); info.setId(ToolUtil.getUUID()); info.setTitle(String.valueOf(map.get("act_name"))); info.setContent("您有"+String.valueOf(map.get("num"))+"个数据共享申请("+String.valueOf(map.get("act_name"))+")超时未处理,请及时到进行处理"); info.setSendtime(ToolUtil.date2Str(new Date(), "yyyy-MM-dd HH:mm:ss")); info.setState("1"); info.setReceiver(String.valueOf(map.get("assignee"))); tmessageInfoService.saveInfo(info); } //服务注册 List> servicelist = jdbcTemplate.queryForList("select assignee,act_name,count(1) num from v_tasklist_delay p,t_service_reginfo q where p.proc_inst_id=q.processid group by assignee,act_name"); for(Map map:servicelist) { info =new TmessageInfo(); info.setId(ToolUtil.getUUID()); info.setTitle(String.valueOf(map.get("act_name"))); info.setContent("您有"+String.valueOf(map.get("num"))+"个服务注册("+String.valueOf(map.get("act_name"))+")超时未处理,请及时进行处理"); info.setSendtime(ToolUtil.date2Str(new Date(), "yyyy-MM-dd HH:mm:ss")); info.setState("1"); info.setReceiver(String.valueOf(map.get("assignee"))); tmessageInfoService.saveInfo(info); } //服务申请 List> serviceApplylist = jdbcTemplate.queryForList("select assignee,act_name,count(1) num from v_tasklist_delay p,t_service_applyinfo q where p.proc_inst_id=q.processid group by assignee,act_name"); for(Map map:serviceApplylist) { info =new TmessageInfo(); info.setId(ToolUtil.getUUID()); info.setTitle(String.valueOf(map.get("act_name"))); info.setContent("您有"+String.valueOf(map.get("num"))+"个服务共享申请("+String.valueOf(map.get("act_name"))+")超时未处理,请及时进行处理"); info.setSendtime(ToolUtil.date2Str(new Date(), "yyyy-MM-dd HH:mm:ss")); info.setState("1"); info.setReceiver(String.valueOf(map.get("assignee"))); tmessageInfoService.saveInfo(info); } } } /** * 短信发送 */ public void delayRemindSend() { // TODO Auto-generated method stub //判断当前是否是工作日 List> worklist = jdbcTemplate.queryForList("select workdate from workcalendar where date_format(`workcalendar`.`workdate`,'%Y-%m-%d')=? and iswork='0'", new Object[] {ToolUtil.date2Str(new Date(), "yyyy-MM-dd")}); if(worklist!=null&&worklist.size()>0) { log.info("工作日发送短信提醒"); List> sendlist = jdbcTemplate.queryForList("select p.content,p.id,q.phone_num,p.dealtime,q.user_name from t_messageinfo p,userinfo q where p.receiver=q.user_id and (p.dealtime='' or p.dealtime is null)"); String serialno="";//短信序列号,可以根据该序列号 获取短信发送情况 for(Map map:sendlist) { try { serialno = ToolUtil.getGuid(); log.info(String.valueOf(map.get("content"))); String content=String.valueOf(map.get("content")).replace("您", String.valueOf(map.get("user_name"))+"您好,您"); ToolUtil.sendMsg(String.valueOf(content), String.valueOf(map.get("phone_num")), serialno); jdbcTemplate.update("update t_messageinfo set dealtime=?,serialno=? where id=?",new Object[] {ToolUtil.date2Str(new Date(),"yyyy-MM-dd HH:mm:ss") ,serialno ,map.get("id") }); } catch (UnsupportedEncodingException e) { log.info("短信接口异常"); } } } else { log.info("非工作日不发送短信提醒"); } } public Pagination findDelayDataShareInfoList(DelayDataShareInfo dto, Pagination pag, User userInfo) { StringBuffer sql=new StringBuffer("select distinct w.providebmcode,w.providebmname,p.task_id,w.infoname,w.infocode,p.act_name,q.applydeptname,q.applydate,p.create_time from v_tasklist_delay p,t_shareapply q,t_infoclass w " + "where p.proc_inst_id=q.processid and q.tinfoclassid=w.id "); List paramList=new ArrayList(); if(!ToolUtil.isNull(dto.getProvidebmcode())) { sql.append(" and w.providebmcode=? "); paramList.add(dto.getProvidebmcode()); } if(!ToolUtil.isNull(dto.getInfoname())) { sql.append(" and w.infoname=? "); paramList.add(dto.getInfoname()); } if(!ToolUtil.isNull(dto.getInfocode())) { sql.append(" and w.infocode=? "); paramList.add(dto.getInfocode()); } if(!ToolUtil.isNull(dto.getTaskname())) { sql.append(" and p.act_name=? "); paramList.add(dto.getTaskname()); } Object[] args = new Object[]{}; int length = paramList.size(); if(length>0){ args=new Object[length]; for(int i=0;i(){ @Override public DelayDataShareInfo mapRow(ResultSet rs, int rowNum) throws SQLException { DelayDataShareInfo info = new DelayDataShareInfo(); info.setApplydate(rs.getString("applydate")); info.setCheckdate(rs.getString("create_time")); info.setInfoname(rs.getString("infoname")); info.setInfocode(rs.getString("infocode")); info.setTaskname(rs.getString("act_name")); info.setRequirename(rs.getString("applydeptname")); info.setProvidebmname(rs.getString("providebmname")); info.setProvidebmcode(rs.getString("providebmcode")); return info; } },jdbcTemplate,database_type); return pag; } public Pagination findDelayServiceShareInfo(DelayServiceShareInfo dto, Pagination pag, User userInfo) { // TODO Auto-generated method stub StringBuffer sql=new StringBuffer("select distinct w.PROVIDEid,w.PROVIDENAME,p.TASK_ID,p.act_name,w.cnname,w.apicode,q.createtime,p.create_time,q.mingcheng from v_tasklist_delay p,t_service_applyinfo q,t_service_reginfo w" + " where p.proc_inst_id=q.processid and q.reqid=w.regid "); List paramList=new ArrayList(); if(!ToolUtil.isNull(dto.getProvidebmcode())) { sql.append(" and w.PROVIDEid=? "); paramList.add(dto.getProvidebmcode()); } if(!ToolUtil.isNull(dto.getServicename())) { sql.append(" and w.cnname=? "); paramList.add(dto.getServicename()); } if(!ToolUtil.isNull(dto.getServicecode())) { sql.append(" and w.apicode=? "); paramList.add(dto.getServicecode()); } if(!ToolUtil.isNull(dto.getTaskname())) { sql.append(" and p.act_name=? "); paramList.add(dto.getTaskname()); } Object[] args = new Object[]{}; int length = paramList.size(); if(length>0){ args=new Object[length]; for(int i=0;i(){ @Override public DelayServiceShareInfo mapRow(ResultSet rs, int rowNum) throws SQLException { DelayServiceShareInfo info = new DelayServiceShareInfo(); info.setApplydate(rs.getString("createtime")); info.setCheckdate(rs.getString("create_time")); info.setServicename(rs.getString("cnname")); info.setServicecode(rs.getString("apicode")); info.setTaskname(rs.getString("act_name")); info.setRequirename(rs.getString("mingcheng")); info.setProvidebmname(rs.getString("providename")); info.setProvidebmcode(rs.getString("provideid")); return info; } },jdbcTemplate,database_type); return pag; } public void generateMsgInfoByProvidebmcode(String busId,User userInfo) { TmessageInfo info=null; //信息类共享申请 List> applylist = jdbcTemplate.queryForList("select assignee,act_name,count(1) num from v_tasklist_delay p,t_shareapply q,t_infoclass w where p.proc_inst_id=q.processid and q.tinfoclassid=w.id and w.providebmcode=? group by assignee,act_name",new Object[] {busId}); for(Map map:applylist) { info =new TmessageInfo(); info.setId(ToolUtil.getUUID()); info.setTitle(String.valueOf(map.get("act_name"))); info.setContent("您有"+String.valueOf(map.get("num"))+"个数据共享申请("+String.valueOf(map.get("act_name"))+")超时未处理,请及时进行处理"); info.setSendtime(ToolUtil.date2Str(new Date(), "yyyy-MM-dd HH:mm:ss")); info.setState("1"); info.setReceiver(String.valueOf(map.get("assignee"))); info.setSenduser(userInfo.getUserId()); info.setProvidebmcode(busId); tmessageInfoService.saveInfo(info); } //服务申请 List> serviceApplylist = jdbcTemplate.queryForList("select assignee,act_name,count(1) from v_tasklist_delay p,t_service_applyinfo q,t_service_reginfo w where p.proc_inst_id=q.processid and q.reqid=w.regid and w.provideid=? group by assignee,act_name",new Object[] {busId}); for(Map map:serviceApplylist) { info =new TmessageInfo(); info.setId(ToolUtil.getUUID()); info.setTitle(String.valueOf(map.get("act_name"))); info.setContent("您有"+String.valueOf(map.get("num"))+"个服务共享申请("+String.valueOf(map.get("act_name"))+")超时未处理,请及时进行处理"); info.setSendtime(ToolUtil.date2Str(new Date(), "yyyy-MM-dd HH:mm:ss")); info.setState("1"); info.setReceiver(String.valueOf(map.get("assignee"))); info.setSenduser(userInfo.getUserId()); info.setProvidebmcode(busId); tmessageInfoService.saveInfo(info); } } public void saveTguajieopinionList(TguajieopinionList opinioninfo) { // TODO Auto-generated method stub tguajieopinionListRepository.save(opinioninfo); } public List findTguajieopinionListByDataId(String id, String type) { return tguajieopinionListRepository.findTguajieopinionListByDataId(id,type); } public List findListByIds(String ids){ List listid = new ArrayList(); for (String id : ids.split(";")) { if(id!=null && !id.trim().isEmpty()){ listid.add(id); } } return tinfoClassRepository.getData(listid); } public IndicatorsDto findIndicatorsInfoByDeptid(String deptids) { IndicatorsDto indicator =new IndicatorsDto(); //1 Object[] ywfglFargs = new Object[]{}; StringBuffer ywfglFSql= new StringBuffer("select count(1) ywfglf from t_subpower_responsibility where state=1 "); if(!ToolUtil.isNull(deptids)) { ywfglFSql.append(" and mainid in (select id from t_power_responsibility where instr(?,enforcementbody)>0) "); ywfglFargs=new Object[1]; ywfglFargs[0]=deptids; } Map map = jdbcTemplate.queryForMap(ywfglFSql.toString(), ywfglFargs); indicator.setYwfglF(((Long) map.get("ywfglf")).intValue()); Object[] ywfglCargs = new Object[]{}; StringBuffer ywfglCSql= new StringBuffer("select count(1) ywfglc from t_subpower_responsibility z where mainid in (select id from t_power_responsibility where state=1) and exists (select q.subid from t_infoclass p ,t_subres_infoclass q where p.id=q.infoclassid and latestversion='1' and p.inprocess='2' and q.subid=z.id)"); if(!ToolUtil.isNull(deptids)) { ywfglCSql=new StringBuffer("select count(1) ywfglc from t_subpower_responsibility z where mainid in (select id from t_power_responsibility where instr(?,enforcementbody)>0 and state=1) and (exists (select q.subid from t_infoclass p ,t_subres_infoclass q where p.id=q.infoclassid and instr(?,p.providebmcode)>0 and p.inprocess='2' and q.subid=z.id) or exists (select id from t_systeminfo_qz where qzid=z.id))"); ywfglCargs=new Object[2]; ywfglCargs[0]=deptids; ywfglCargs[1]=deptids; } Map map1 = jdbcTemplate.queryForMap(ywfglCSql.toString(), ywfglCargs); indicator.setYwfglC(((Long) map1.get("ywfglc")).intValue()); //2 Object[] yyfglFargs = new Object[]{}; StringBuffer yyfglFSql= new StringBuffer("select count(1) yyfglf from t_system_info where (isdelete is null or isdelete='') "); if(!ToolUtil.isNull(deptids)) { yyfglFSql=new StringBuffer(" select count(1) yyfglf from t_system_info where (isdelete is null or isdelete='') and instr(?,sys_dept_id)>0"); yyfglFargs=new Object[1]; yyfglFargs[0]=deptids; } Map map2 = jdbcTemplate.queryForMap(yyfglFSql.toString(), yyfglFargs); indicator.setYyfglF(((Long) map2.get("yyfglf")).intValue()); Object[] yyfglCargs = new Object[]{}; StringBuffer yyfglCSql= new StringBuffer("select count(1) yyfglc from t_system_info p where (isdelete is null or isdelete='') and exists (select systeminfo_id from t_systeminfo_infoclass z where systeminfo_id=p.sys_id and exists( select * from t_infoclass where latestversion='1' and inprocess='2' and id=z.infoclass_id))"); if(!ToolUtil.isNull(deptids)) { yyfglCSql=new StringBuffer("select count(1) yyfglc from t_system_info p where instr(?,sys_dept_id)>0 and (isdelete is null or isdelete='') and exists(select systeminfo_id from t_systeminfo_infoclass z where systeminfo_id=p.sys_id and exists( select * from t_infoclass where latestversion='1' and inprocess='2' and instr(?,providebmcode)>0 and id=z.infoclass_id))"); yyfglCargs=new Object[2]; yyfglCargs[0]=deptids; yyfglCargs[1]=deptids; } Map map3 = jdbcTemplate.queryForMap(yyfglCSql.toString(), yyfglCargs); indicator.setYyfglC(((Long) map3.get("yyfglc")).intValue()); //3 Object[] qzgllFargs = new Object[]{}; StringBuffer qzgllFSql= new StringBuffer(" select count(1) qzgllf from t_infoclass p where p.LATESTVERSION='1' and p.INPROCESS='2' "); if(!ToolUtil.isNull(deptids)) { qzgllFSql=new StringBuffer(" select count(1) qzgllf from t_infoclass p where p.LATESTVERSION='1' and p.INPROCESS='2' and instr(?,providebmcode)>0"); qzgllFargs=new Object[1]; qzgllFargs[0]=deptids; } Map map4 = jdbcTemplate.queryForMap(qzgllFSql.toString(), qzgllFargs); indicator.setQzgllF(((Long) map4.get("qzgllf")).intValue()); Object[] qzgllCargs = new Object[]{}; StringBuffer qzgllCSql= new StringBuffer(" select count(1) qzgllc from t_infoclass p where p.LATESTVERSION='1' and p.INPROCESS='2' and exists(select id from t_subres_infoclass where infoclassid=p.id) "); if(!ToolUtil.isNull(deptids)) { qzgllCSql=new StringBuffer(" select count(1) qzgllc from t_infoclass p where p.LATESTVERSION='1' and p.INPROCESS='2' and instr(?,providebmcode)>0 and exists(select id from t_subres_infoclass where infoclassid=p.id)"); qzgllCargs=new Object[1]; qzgllCargs[0]=deptids; } Map map5 = jdbcTemplate.queryForMap(qzgllCSql.toString(), qzgllCargs); indicator.setQzgllC(((Long) map5.get("qzgllc")).intValue()); //4 indicator.setXtgllF(((Long) map4.get("qzgllf")).intValue()); Object[] xtgllCargs = new Object[]{}; StringBuffer xtgllCSql= new StringBuffer(" select count(1) xtgllc from t_infoclass p where p.LATESTVERSION='1' and p.INPROCESS='2' and exists(select systeminfoclass_ID from t_systeminfo_infoclass where infoclass_id=p.id )"); if(!ToolUtil.isNull(deptids)) { xtgllCSql=new StringBuffer(" select count(1) xtgllc from t_infoclass p where p.LATESTVERSION='1' and p.INPROCESS='2' and instr(?,providebmcode)>0 and exists(select systeminfoclass_ID from t_systeminfo_infoclass where infoclass_id=p.id )"); xtgllCargs=new Object[1]; xtgllCargs[0]=deptids; } Map map7 = jdbcTemplate.queryForMap(xtgllCSql.toString(), xtgllCargs); indicator.setXtgllC(((Long) map7.get("xtgllc")).intValue()); //5 Object[] gjFargs = new Object[]{}; StringBuffer gjFSql= new StringBuffer(" select count(1) gjlf from t_infoclass where inprocess='2' and latestversion='1' and sharetype!='3'"); if(!ToolUtil.isNull(deptids)) { gjFSql=new StringBuffer(" select count(1) gjlf from t_infoclass where inprocess='2' and latestversion='1' and instr(?,providebmcode)>0 and sharetype!='3'"); gjFargs=new Object[1]; gjFargs[0]=deptids; } Map map8 = jdbcTemplate.queryForMap(gjFSql.toString(), gjFargs); indicator.setGjlF(((Long) map8.get("gjlf")).intValue()); Object[] gjlCargs = new Object[]{}; StringBuffer gjlCSql= new StringBuffer(" select count(1) gjlc from t_infoclass where inprocess='2' and latestversion='1' and hitch_status=1 and sharetype!='3'"); if(!ToolUtil.isNull(deptids)) { gjlCSql=new StringBuffer(" select count(1) gjlc from t_infoclass where inprocess='2' and latestversion='1' and hitch_status=1 and instr(?,providebmcode)>0 and sharetype!='3'"); gjlCargs=new Object[1]; gjlCargs[0]=deptids; } Map map9 = jdbcTemplate.queryForMap(gjlCSql.toString(), gjlCargs); indicator.setGjlC(((Long) map9.get("gjlc")).intValue()); Object[] kblcCargs = new Object[]{}; StringBuffer kblcCSql= new StringBuffer(" select count(1) kblc from t_infoclass where inprocess='2' and latestversion='1' and sharemodetypename='数据库' "); if(!ToolUtil.isNull(deptids)) { kblcCSql=new StringBuffer(" select count(1) kblc from t_infoclass where inprocess='2' and latestversion='1' and sharemodetypename='数据库' and instr(?,providebmcode)>0 "); kblcCargs=new Object[1]; kblcCargs[0]=deptids; } Map map10 = jdbcTemplate.queryForMap(kblcCSql.toString(), kblcCargs); Object[] kblFargs = new Object[]{}; StringBuffer kblFSql= new StringBuffer(" select count(1) kbllf from t_infoclass where inprocess='2' and latestversion='1' "); if(!ToolUtil.isNull(deptids)) { kblFSql=new StringBuffer(" select count(1) kbllf from t_infoclass where inprocess='2' and latestversion='1' and instr(?,providebmcode)>0 "); kblFargs=new Object[1]; kblFargs[0]=deptids; } Map map18 = jdbcTemplate.queryForMap(kblFSql.toString(), kblFargs); indicator.setKblC(((Long) map10.get("kblc")).intValue()); indicator.setKblF(((Long) map18.get("kbllf")).intValue()); Object[] mlshCargs = new Object[]{}; StringBuffer mlshCSql= new StringBuffer(" select count(1) nook from V_HISTASKLIST_T p,t_infoclass q where p.taskname='主管部门审核' and q.latestversion='1' and p.busid=q.ID and p.taskmessage not like '审核通过%'"); if(!ToolUtil.isNull(deptids)) { mlshCSql=new StringBuffer(" select count(1) nook from V_HISTASKLIST_T p,t_infoclass q where p.taskname='主管部门审核' and q.latestversion='1' and p.busid=q.ID and p.taskmessage not like '审核通过%' and instr(?,providebmcode)>0 "); mlshCargs=new Object[1]; mlshCargs[0]=deptids; } Map map11 = jdbcTemplate.queryForMap(mlshCSql.toString(), mlshCargs); Object[] mlshFargs = new Object[]{}; StringBuffer mlshFSql= new StringBuffer(" select count(1) oknum from t_infoclass q where q.latestversion='1' and inprocess='2'"); if(!ToolUtil.isNull(deptids)) { mlshFSql=new StringBuffer(" select count(1) oknum from t_infoclass q where q.latestversion='1' and inprocess='2' and instr(?,providebmcode)>0 "); mlshFargs=new Object[1]; mlshFargs[0]=deptids; } Map map12 = jdbcTemplate.queryForMap(mlshFSql.toString(), mlshFargs); indicator.setMlshC(((Long) map12.get("oknum")).intValue()); indicator.setMlshF(((Long) map12.get("oknum")).intValue()+((Long) map11.get("nook")).intValue()); Object[] gjshCargs = new Object[]{}; StringBuffer gjshCSql= new StringBuffer("select count(1) nook from t_guajieopinion_list p where datatype='t_infoclass' and result!='审核通过' and p.dataid in (select id from t_infoclass where INPROCESS='2' )" + ""); if(!ToolUtil.isNull(deptids)) { gjshCSql=new StringBuffer("select count(1) nook from t_guajieopinion_list p where datatype='t_infoclass' and result!='审核通过' and p.dataid in (select id from t_infoclass where INPROCESS='2' and instr(?,providebmcode)>0)" + " "); gjshCargs=new Object[1]; gjshCargs[0]=deptids; } Map map13 = jdbcTemplate.queryForMap(gjshCSql.toString(), gjshCargs); Object[] gjshFargs = new Object[]{}; StringBuffer gjshFSql= new StringBuffer(" select count(1) oknum from t_infoclass q where inprocess='2' and HITCH_STATUS=1"); if(!ToolUtil.isNull(deptids)) { gjshFSql=new StringBuffer(" select count(1) oknum from t_infoclass q where inprocess='2' and HITCH_STATUS=1 and instr(?,providebmcode)>0 "); gjshFargs=new Object[1]; gjshFargs[0]=deptids; } Map map14 = jdbcTemplate.queryForMap(gjshFSql.toString(), gjshFargs); indicator.setGjshC(((Long) map14.get("oknum")).intValue()); indicator.setGjshF(((Long) map14.get("oknum")).intValue()+((Long) map13.get("nook")).intValue()); Object[] kzlFargs = new Object[]{}; StringBuffer kzlFSql= new StringBuffer("select sum(SUBSTRING_INDEX( p.nullvaluenum , '/', 1 ) ) nullnum,sum(SUBSTRING_INDEX(SUBSTRING_INDEX( p.nullvaluenum , '/', 2 ),'/',-1)) tt from rkrm_zl_probeinfo p, (select TABLEname,max(TCTIME) tctime from rkrm_zl_probeinfo group by TABLEname) q where p.TABLENAME=q.TABLENAME and p.TCTIME=q.tctime and " + " p.tablename in (select concat('t_',replace(infocode,'/','_')) pp from t_infoclass where inprocess='2' and latestversion='1' and HITCH_STATUS=1 " + " and sharemodetypename='数据库' ) and p.tablename in (select tablename from current_infoclass)"); if(!ToolUtil.isNull(deptids)) { kzlFSql=new StringBuffer(" select sum(SUBSTRING_INDEX( p.nullvaluenum , '/', 1 ) ) nullnum,sum(SUBSTRING_INDEX(SUBSTRING_INDEX( p.nullvaluenum , '/', 2 ),'/',-1)) tt from rkrm_zl_probeinfo p, (select TABLEname,max(TCTIME) tctime from rkrm_zl_probeinfo group by TABLEname) q where p.TABLENAME=q.TABLENAME and p.TCTIME=q.tctime and " + " p.tablename in (select concat('t_',replace(infocode,'/','_')) pp from t_infoclass where inprocess='2' and latestversion='1' and HITCH_STATUS=1 " + " and sharemodetypename='数据库' and instr(?,providebmcode)>0 ) and p.tablename in (select tablename from current_infoclass)"); kzlFargs=new Object[1]; kzlFargs[0]=deptids; } Map map15 = jdbcTemplate.queryForMap(kzlFSql.toString(), kzlFargs); if(map15.get("nullnum")!=null) { indicator.setKzlC(((Double) map15.get("nullnum"))); } else { indicator.setKzlC(0); } if(map15.get("tt")!=null) { indicator.setKzlF(((Double) map15.get("tt"))); } else { indicator.setKzlF(0); } Object[] sjgxFargs = new Object[]{}; StringBuffer sjgxFSql= new StringBuffer("select count(1) allnum from t_infoclass where inprocess='2' and latestversion='1' and HITCH_STATUS=1 and sharemodetypename='数据库' and concat('t_',replace(infocode,'/','_')) in (select tablename from current_infoclass) "); if(!ToolUtil.isNull(deptids)) { sjgxFSql=new StringBuffer(" select count(1) allnum from t_infoclass where inprocess='2' and latestversion='1' and HITCH_STATUS=1 and instr(?,providebmcode)>0 and sharemodetypename='数据库' and concat('t_',replace(infocode,'/','_')) in (select tablename from current_infoclass)"); sjgxFargs=new Object[1]; sjgxFargs[0]=deptids; } Map map16 = jdbcTemplate.queryForMap(sjgxFSql.toString(), sjgxFargs); Object[] sjgxCargs = new Object[]{}; StringBuffer sjgxCSql= new StringBuffer("select count(1) allnum from t_infoclass where inprocess='2' and latestversion='1' and HITCH_STATUS=1 and sharemodetypename='数据库' and concat('t_',replace(infocode,'/','_')) in (select tablename from current_infoclass) and " + "concat('t_',replace(infocode,'/','_')) in (select p.table_name from update_rate p,(select table_name,max(insert_time) insert_time from update_rate GROUP BY table_name) q " + "where p.table_name=q.table_name and p.insert_time=q.insert_time and p.is_update='1') "); if(!ToolUtil.isNull(deptids)) { sjgxCSql=new StringBuffer(" select count(1) allnum from t_infoclass where inprocess='2' and latestversion='1' and concat('t_',replace(infocode,'/','_')) in (select tablename from current_infoclass) and HITCH_STATUS=1 and instr(?,providebmcode)>0 and sharemodetypename='数据库' and " + "concat('t_',replace(infocode,'/','_')) in (select p.table_name from update_rate p,(select table_name,max(insert_time) insert_time from update_rate GROUP BY table_name) q " + "where p.table_name=q.table_name and p.insert_time=q.insert_time and p.is_update='1')"); sjgxCargs=new Object[1]; sjgxCargs[0]=deptids; } Map map17 = jdbcTemplate.queryForMap(sjgxCSql.toString(), sjgxCargs); indicator.setSjgxC(((Long) map17.get("allnum")).intValue()); indicator.setSjgxF(((Long) map16.get("allnum")).intValue()); return indicator; } public Pagination findTinfoClassCsmlList(TinfoClassDto dto, Pagination pag, User userInfo) { StringBuffer sql=new StringBuffer("select * from t_infoclass t where latestversion='1' and exists (select * from t_systeminfo_infoclass p where p.infoclass_id=t.id and systeminfo_id=?) "); glmlList(sql,dto,pag); return pag; } public Pagination findTinfoClassQzmlList(TinfoClassDto dto, Pagination pag, User userInfo) { StringBuffer sql=new StringBuffer("select * from t_infoclass t where latestversion='1' and exists (select * from t_subres_infoclass p where p.infoclassid=t.id and subid=?) "); glmlList(sql,dto,pag); return pag; } private void glmlList(StringBuffer sql, TinfoClassDto dto, Pagination pag) { List paramList=new ArrayList(); paramList.add(dto.getSysteminfo()); if(!ToolUtil.isNull(dto.getInfoname())){ sql.append(" and infoname like ? "); paramList.add("%"+dto.getInfoname()+"%"); } if(!ToolUtil.isNull(dto.getInfotypename())){ sql.append(" and infotypename like ? "); paramList.add("%"+dto.getInfotypename()+"%"); } if(!ToolUtil.isNull(dto.getSharetype())){ sql.append(" and sharetype = ? "); paramList.add(dto.getSharetype()); } if(!ToolUtil.isNull(dto.getProvidebmname())){ sql.append(" and providebmname like ? "); paramList.add("%"+dto.getProvidebmname()+"%"); } if(!ToolUtil.isNull(dto.getTaskname())) { switch(dto.getTaskname()) { case "未提交": {sql.append(" and inprocess = ? "); paramList.add("0");} break; case "部门审核":{ sql.append(" and inprocess = ? "); paramList.add("1"); sql.append(" and taskname = ? "); paramList.add("部门审核"); };break; case "主管部门审核": { sql.append(" and inprocess = ? "); paramList.add("1"); sql.append(" and taskname = ? "); paramList.add("主管部门审核"); } break; case "已发布":{ sql.append(" and inprocess = ? "); paramList.add("2"); } break; case "停用":{ sql.append(" and inprocess = ? "); paramList.add("5"); }break; case "编目人员修改": { sql.append(" and inprocess = ? "); paramList.add("1"); sql.append(" and taskname = ? "); paramList.add("编目人员修改"); } break; default: break; } } if(!ToolUtil.isNull(dto.getInfocode())){ sql.append(" and infocode like ? "); paramList.add("%"+dto.getInfocode()+"%"); } if(!ToolUtil.isNull(dto.getIsopensocial())){ sql.append(" and isopensocial = ? "); paramList.add(dto.getIsopensocial()); } if(dto.getHitchStatus()!=null){ if("1".equals(dto.getHitchStatus()+"")) sql.append(" and hitch_status =1 "); else { sql.append(" and (hitch_status =0 or hitch_status is null)"); } } // 起始时间 if (!ToolUtil.isNull(dto.getStartdate())) { sql.append(" and updatetime >= ? "); paramList.add(dto.getStartdate()); } // 结束时间 if (!ToolUtil.isNull(dto.getEnddate())) { sql.append(" and updatetime <= ? "); paramList.add(dto.getEnddate()+" 23:59:59"); } Object[] args = new Object[]{}; int length = paramList.size(); if(length>0){ args=new Object[length]; for(int i=0;i(){ @Override public TinfoClassDto mapRow(ResultSet rs, int rowNum) throws SQLException { TinfoClassDto info = new TinfoClassDto(); info.setInfocode(rs.getString("infocode")); info.setInfoname(rs.getString("infoname")); info.setInprocess(rs.getString("inprocess")); info.setId(rs.getString("id")); info.setTaskname(rs.getString("taskname")); info.setVersionid(Integer.parseInt(rs.getString("versionid"))); info.setSubversionid(Integer.parseInt(rs.getString("subversionid"))); info.setSourceid(rs.getString("sourceid")); info.setUpdatetime(rs.getString("updatetime")); info.setIsopensocial(rs.getString("isopensocial")); info.setInfotypename(rs.getString("infotypename")); info.setProvidebmname(rs.getString("providebmname")); info.setSharetype(rs.getString("sharetype")); info.setHitchStatus(Integer.parseInt(rs.getString("hitch_status")==null?"0":rs.getString("hitch_status"))); return info; } },jdbcTemplate,database_type); } public void updateSceneInfoToYwtable() { List> maplist = jdbcTemplate.queryForList("select GROUP_CONCAT(q.scene_name) scenename,GROUP_CONCAT(q.scene_code) scenecode,ywid from t_scene_relation p,t_scene_info q where p.ywtable='t_shareapply' and p.sceneid=q.sceneid and issyn is null GROUP BY ywid"); for(Map map:maplist) { jdbcTemplate.update("update t_shareapply set scenename=?,scenecode=? where id=?", new Object[] {map.get("scenename"),map.get("scenecode"),map.get("ywid")}); jdbcTemplate.update("update t_scene_relation p set p.issyn='1' where p.issyn is null and ywid=? and ywtable='t_shareapply'", new Object[] {map.get("ywid")}); } List> maplist2 = jdbcTemplate.queryForList("select GROUP_CONCAT(q.scene_name) scenename,GROUP_CONCAT(q.scene_code) scenecode,ywid from t_scene_relation p,t_scene_info q where p.ywtable='t_service_applyinfo' and p.sceneid=q.sceneid and issyn is null GROUP BY ywid"); for(Map map:maplist2) { jdbcTemplate.update("update t_service_applyinfo set scenename=?,scenecode=? where applyid=?", new Object[] {map.get("scenename"),map.get("scenecode"),map.get("ywid")}); jdbcTemplate.update("update t_scene_relation p set p.issyn='1' where p.issyn is null and ywid=? and ywtable='t_service_applyinfo'", new Object[] {map.get("ywid")}); } jdbcTemplate.execute("insert into v_histasklist_t select * from v_histasklist p where not exists(select * from v_histasklist_t t where t.taskid=p.taskid)"); } public Pagination findTshareApplyByClassid(Map dto, Pagination pag, User userInfo) { List orders = new ArrayList(); Order order1 = new Order(Direction.ASC, "actualize"); orders.add(order1); Order order = new Order(Direction.DESC, "applydate"); Order order2 = new Order(Direction.DESC, "state"); orders.add(order2); orders.add(order); Order order3 = new Order(Direction.ASC, "taskname"); orders.add(order3); Sort sort = new Sort(orders); PageRequest request = new PageRequest(pag.getPageCurrentNum() - 1, pag.getPageSize(), sort); Page page; page = tshareApplyRepository.findAll(new Specification() { @Override public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder cb) { List pl = new ArrayList(); Join join = root.join("tinfoClass"); pl.add(cb.isNotNull(join.get("id"))); pl.add(cb.equal(join.get("id"), dto.get("classid"))); pl.add(cb.or(cb.equal(root.get("state"),"0"),cb.equal(root.get("state"),"1"),cb.equal(root.get("state"),"2"),cb.equal(root.get("state"),"3"))); if (dto.get("taskname")!=null&&!"".equals(dto.get("taskname"))) { pl.add((cb.equal(root.get("taskname"), dto.get("taskname")))); } // 申请部门 if (dto.get("applydeptname")!=null&&!"".equals(dto.get("applydeptname"))) { pl.add((cb.like(root.get("applydeptname"), "%" + dto.get("applydeptname") + "%"))); } if (dto.get("shareserialno")!=null&&!"".equals(dto.get("shareserialno"))) { pl.add(cb.like(root.get("shareserialno"), "%" + dto.get("shareserialno") + "%")); } if (dto.get("state")!=null&&!"".equals(dto.get("state"))) { pl.add((cb.equal(root.get("state"), dto.get("state")))); } if (dto.get("scenecode")!=null&&!"".equals(dto.get("scenecode"))) { pl.add(cb.like(root.get("scenecode"), "%" + dto.get("scenecode") + "%")); } if (dto.get("scenename")!=null&&!"".equals(dto.get("scenename"))) { pl.add(cb.like(root.get("scenename"), "%" + dto.get("scenename") + "%")); } if (dto.get("actualize")!=null&&!"".equals(dto.get("actualize"))) { if ("1".equals(dto.get("actualize"))||"0".equals(dto.get("actualize"))) { pl.add((cb.equal(root.get("actualize"), dto.get("actualize")))); } else { pl.add(cb.or(cb.equal(root.get("actualize"), dto.get("actualize")), cb.isNull(root.get("actualize")))); } } return cb.and(pl.toArray(new Predicate[0])); } }, request); List dataList = page.getContent(); List dtolist = new ArrayList(); for (TshareApply u : dataList) { TshareApplyDto tshareApplyDto = new TshareApplyDto(); BeanUtils.copyProperties(u, tshareApplyDto); dtolist.add(tshareApplyDto); } pag.setPageResult(dtolist); pag.setPageCount(page.getTotalPages()); pag.setPageTotal((int) page.getTotalElements()); return pag; } public void updateTshareApplyKnowStateByClassId(String state,String parentid) { jdbcTemplate.update("update t_shareapply p set p.knowstate=? where p.tinfoclassid=? and p.state='2' ",new Object[] {state,parentid}); } public TinfoClass findTinfoClassByPid(String tinfoClassinfoclassid) { TinfoClass info = tinfoClassRepository.findByPid(tinfoClassinfoclassid); if(info!=null){ return info; } return null; } public Pagination findserviceInfoByClassid(Map dto, Pagination pag, User userInfo) { StringBuffer sql=new StringBuffer("select * from t_service_reginfo where inprocess!='4' "); List paramList=new ArrayList(); if(dto.get("classid")!=null&&!"".equals(dto.get("classid"))){ paramList.add(dto.get("classid")+""); sql.append(" and instr(classid,?)>0 "); } if(dto.get("cnname")!=null&&!"".equals(dto.get("cnname"))){ paramList.add("%"+dto.get("cnname")+"%"); sql.append(" and cnname like ? "); } if(dto.get("providename")!=null&&!"".equals(dto.get("providename"))){ paramList.add("%"+dto.get("providename")+"%"); sql.append(" and enname like ? "); } Object[] args = new Object[]{}; int length = paramList.size(); if(length>0){ args=new Object[length]; for(int i=0;i(TserviceRegInfoDto.class),jdbcTemplate,database_type); return pag; } public void updateClassIdOfServiceInfo(String id, String infoname, String id2, String infoname2) { // TODO Auto-generated method stub jdbcTemplate.update("update t_service_reginfo set classid=replace(classid,?,?),classname=replace(classname,?,?) where instr(classid,?)>0",new Object[] { id2+";", id+";", infoname2+";", infoname+";", id2+";" }); } public IndicatorsDto findIndicatorsLastResultInfoByDeptid(String deptids) { IndicatorsDto dto =new IndicatorsDto(); List list = indicatorsRepository.findIndicatorByDeptids(deptids); double ywfglC=0.0;// 业务覆盖率-分子 double ywfglF=0.0;// 业务覆盖率-分母 double yyfglC=0.0;// 应用覆盖率-分子 double yyfglF=0.0;// 应用覆盖率-分母 double qzgllC=0.0;// 权责关联率-分子 double qzgllF=0.0;// 权责关联率-分母 double xtgllC=0.0;// 系统关联率-分子 double xtgllF=0.0;// 系统关联率-分母 double gjlC=0.0;// 挂接率-分子 double gjlF=0.0;// 挂接率-分母 double kblC=0.0;// 库表率-分子 double kblF=0.0;// 库表率-分母 double sjgxC=0.0;// 数据更新率率-分子 double sjgxF=0.0;// 数据更新率率-分母 double kzlC=0.0;// 空值率-分子 double kzlF=0.0;// 空值率-分母 double mlshC=0.0;// 目录审核通过率-分子 double mlshF=0.0;// 目录审核通过率-分母 double gjshC=0.0;// 挂接审核通过率-分子 double gjshF=0.0;// 挂接审核通过率-分母 for(Indicators info:list) { ywfglC+=info.getYwfglC();// 业务覆盖率-分子 ywfglF+=info.getYwfglF();// 业务覆盖率-分母 yyfglC+=info.getYyfglC();// 应用覆盖率-分子 yyfglF+=info.getYyfglF();// 应用覆盖率-分母 qzgllC+=info.getQzgllC();// 权责关联率-分子 qzgllF+=info.getQzgllF();// 权责关联率-分母 xtgllC+=info.getXtgllC();// 系统关联率-分子 xtgllF+=info.getXtgllF();// 系统关联率-分母 gjlC+=info.getGjlC();// 挂接率-分子 gjlF+=info.getGjlF();// 挂接率-分母 kblC+=info.getKblC();// 库表率-分子 kblF+=info.getKblF();// 库表率-分母 sjgxC+=info.getSjgxC();// 数据更新率率-分子 sjgxF+=info.getSjgxF();// 数据更新率率-分母 kzlC+=info.getKzlC();// 空值率-分子 kzlF+=info.getKzlF();// 空值率-分母 mlshC+=info.getMlshC();// 目录审核通过率-分子 mlshF+=info.getMlshF();// 目录审核通过率-分母 gjshC+=info.getGjshC();// 挂接审核通过率-分子 gjshF+=info.getGjshF();// 挂接审核通过率-分母 } dto.setYwfglC(ywfglC);// 业务覆盖率-分子 dto.setYwfglF(ywfglF);// 业务覆盖率-分母 dto.setYyfglC(yyfglC);// 应用覆盖率-分子 dto.setYyfglF(yyfglF);// 应用覆盖率-分母 dto.setQzgllC(qzgllC);// 权责关联率-分子 dto.setQzgllF(qzgllF);// 权责关联率-分母 dto.setXtgllC(xtgllC);// 系统关联率-分子 dto.setXtgllF(xtgllF);// 系统关联率-分母 dto.setGjlC(gjlC);// 挂接率-分子 dto.setGjlF(gjlF);// 挂接率-分母 dto.setKblC(kblC);// 库表率-分子 dto.setKblF(kblF);// 库表率-分母 dto.setSjgxC(sjgxC);// 数据更新率率-分子 dto.setSjgxF(sjgxF);// 数据更新率率-分母 dto.setKzlC(kzlC);// 空值率-分子 dto.setKzlF(kzlF);// 空值率-分母 dto.setMlshC(mlshC);// 目录审核通过率-分子 dto.setMlshF(mlshF);// 目录审核通过率-分母 dto.setGjshC(gjshC);// 挂接审核通过率-分子 dto.setGjshF(gjshF);// 挂接审核通过率-分母 return dto; } public void indicatorJob() { List list = jdbcTemplate.queryForList("select dept_id from deptinfo ", String.class); IndicatorsDto indicator =new IndicatorsDto(); Indicators info =new Indicators(); indicatorsRepository.updateIndicatorsDisable(); String insertdate = ToolUtil.date2Str(new Date(), "yyyy-MM-dd HH:mm:ss") ; List>> futureList = new ArrayList>>(); /**集合总条数**/ int size = list.size(); /**将集合切分的段数**/ int sunSum = 20; int listStart,listEnd; /***当总条数不足10条时 用总条数 当做线程切分值**/ if(sunSum > size){ sunSum = size; } /**定义子线程**/ SunIndicatorCallable sunCallable; for (int i = 0; i < sunSum; i++) { /***计算切割 开始和结束**/ listStart = size / sunSum * i ; listEnd = size / sunSum * ( i + 1 ); /**最后一段线程会 出现与其他线程不等的情况**/ if(i == sunSum - 1){ listEnd = size; } /**线程切断**/ List sunList = list.subList(listStart,listEnd); /**子线程初始化**/ sunCallable = new SunIndicatorCallable(sunList,i); /***多线程执行***/ futureList.add(threadPoolTaskExecutor.submit(sunCallable)); } // for(String map:list) { // // indicator =findIndicatorsInfoByDeptid(map+""); // indicator.setYwfglValue(ywfglValue); // indicator.setYyfglValue(yyfglValue); // indicator.setQzgllValue(qzgllValue); // indicator.setXtgllValue(xtgllValue); // indicator.setGjlValue(gjlValue); // indicator.setKblValue(kblValue); // indicator.setSjgxValue(sjgxValue); // indicator.setMlshValue(mlshValue); // indicator.setGjshValue(gjshValue); // BeanUtils.copyProperties(indicator, info); // info.setDeptid(map+""); // info.setInsertdate(insertdate); // info.setId(ToolUtil.getUUID()); // info.setState("1"); // indicatorsRepository.save(info); // } } public Pagination findTinfoClassHitchImplementList(final TinfoClassDto dto, Pagination pag,final User userInfo) { List orders = new ArrayList(); Order order = new Order(Direction.ASC, "implementationState"); Order order1 = new Order(Direction.DESC, "id"); orders.add(order); orders.add(order1); Sort sort = new Sort(orders); PageRequest request = new PageRequest(pag.getPageCurrentNum() - 1, pag.getPageSize(), sort); Page page; page = tinfoClassRepository.findAll(new Specification() { @Override public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder cb) { Set serRole = userInfo.getRoles(); boolean flag = false; for (Role role : serRole) { if(admin_id.equals(role.getRoleId())) flag = true; } List pl = new ArrayList(); pl.add(cb.equal(root.get("latestversion"), "1")); pl.add(cb.equal(root.get("inprocess"), "2")); //挂接情况状态 1是已挂接 0未挂接 pl.add(cb.equal(root.get("hitchStatus"), "1")); if(!ToolUtil.isNull(dto.getInfoname())){ pl.add(cb.like(root.get("infoname"), "%"+dto.getInfoname()+"%")); } if(!ToolUtil.isNull(dto.getInfotypename())){ pl.add(cb.like(root.get("infotypename"), "%"+dto.getInfotypename()+"%")); } if(!ToolUtil.isNull(dto.getInfocode())){ pl.add(cb.like(root.get("infocode"), "%"+dto.getInfocode()+"%")); } if(!ToolUtil.isNull(dto.getProvidebmname())){ pl.add(cb.like(root.get("providebmname"), "%"+dto.getProvidebmname()+"%")); } //实施起始时间 if (!ToolUtil.isNull(dto.getStartdate())) { pl.add(cb.greaterThanOrEqualTo(root. get("implementationData"),dto.getStartdate())); } //实施结束时间 if (!ToolUtil.isNull(dto.getEnddate())) { pl.add(cb.lessThanOrEqualTo(root. get("implementationData"), dto.getEnddate()+" 23:59:59")); } //实施状态:0-未实施 1-已实施 if(!ToolUtil.isNull(dto.getImplementationState())){ if("1".equals(dto.getImplementationState())) { pl.add(cb.equal(root.get("implementationState"), dto.getImplementationState())); }else { pl.add(cb.or(cb.equal(root.get("implementationState"),dto.getImplementationState()),cb.isNull(root.get("implementationState")))); } } return cb.and(pl.toArray(new Predicate[0])); } }, request); List dataList = page.getContent(); List dtolsit = new ArrayList(); for (TinfoClass u : dataList) { dtolsit.add(new TinfoClassDto(u)); } pag.setPageResult(dtolsit); pag.setPageCount(page.getTotalPages()); pag.setPageTotal((int) page.getTotalElements()); return pag; } public List findListByInfonameAndProviceBmcode(String infoname, String providebmcode) { // TODO Auto-generated method stub return tinfoClassRepository.findListByInfonameAndProviceBmcode(infoname,providebmcode); } public String checkInfoValid(TinfoClass info) { String resultTip = ""; info.setCreatedate(ToolUtil.date2Str(new Date(), "yyyy-MM-dd HH:mm:ss")); info.setVersionid(1); info.setHitchStatus(0); info.setLatestversion("1");// 默认最新版本 info.setInprocess("2");// 未启动流程 info.setBgstatus("1");// 未变更 if(!ToolUtil.isNull(info.getInfotypeid())){ TresClassify res = tresClassifyService.findTresClassifyById(info.getInfotypeid()); if(res!=null&&!ToolUtil.isNull(res.getResid())){ info.setInfotype(res.getRescode()); info.setInfotypename(res.getResname()); info.setInfotypeid(res.getResid()); } else{ resultTip +="infotypeid参数对应的资源分类不存在;"; } } else{ resultTip +="infotypeid参数值不能为空;"; } if(!ToolUtil.isNull(info.getProvidebmcode())){ Dept dept = deptService.findDeptInfoById(info.getProvidebmcode()); if(dept!=null&&!ToolUtil.isNull(dept.getDeptId())){ info.setProvidebmcode(dept.getDeptId()); info.setProvidebmname(dept.getDeptName()); if(!ToolUtil.isNull(dept.getCreditno())){ info.setCreditno(dept.getCreditno()); } else{ resultTip +="providebmcode参数对应的部门未维护统一社会信用代码信息;"; } if(!ToolUtil.isNull(dept.getYwbmid())){ info.setYwbmcode(dept.getYwbmcode()); info.setYwbmid(dept.getYwbmid()); info.setYwbmname(dept.getYwbmname()); }else{ resultTip +="providebmcode参数对应的部门未维护业务部门信息;"; } if(!ToolUtil.isNull(dept.getXzqhcode())){ info.setXzqhcode(dept.getXzqhcode()); info.setXzqhid(dept.getXzqhid()); info.setXzqhname(dept.getXzqhname()); } else{ resultTip +="providebmcode参数对应的部门未维护行政区划信息;"; } } else{ resultTip +="providebmcode参数对应的部门信息不存在;"; } } else{ resultTip +="providebmcode参数值不能为空;"; } if (ToolUtil.isNull(info.getInfoname())) { resultTip += "infoname不能为空;"; } if (!ToolUtil.isNull(info.getInfoname()) && info.getInfoname().length() > 200) { resultTip += "infoname长度不能超过200字符;"; } if (!ToolUtil.isNull(info.getSharerange()) ) { if(!"全市,市本级,其他".contains(info.getSharerange())) resultTip += "sharerange字典值错误;"; } else{ resultTip+= "sharerange不能为空;"; } if (ToolUtil.isNull(info.getFormattypename())) { resultTip += "formattypename不能为空;"; } else { for (CodeDto code : dbdcCodeService.findCodeByCodeType("xxzygs")) { if (code != null && code.getId() != null && info.getFormattypename().equals(code.getCodeName())) { info.setFormattype(code.getCodeCode()); info.setFormattypeid(code.getId()); } } if (ToolUtil.isNull(info.getFormattypeid())) { resultTip += "formattypename字典值错误;"; } } // 信息资源格式分类,要校验 格式与分类是否对应 if (ToolUtil.isNull(info.getSubformattypename())) { resultTip += "subformattypename不能为空;"; } else { for (CodeDto code : dbdcCodeService.findCodeByCodeType(info.getFormattype())) { if (code != null && code.getId() != null && info.getSubformattypename().equals(code.getCodeName())) { info.setSubformattype(code.getCodeCode()); info.setSubformattypeid(code.getId()); } } if (ToolUtil.isNull(info.getSubformattypeid())) { resultTip += "formattypename与subformattypename不匹配;"; } } // 信息类摘要 校验长度 if (!ToolUtil.isNull(info.getInfoabstracts()) && info.getInfoabstracts().length() > 400) { resultTip += "infoabstracts不能超过400字符;"; } else if (ToolUtil.isNull(info.getInfoabstracts())) { resultTip += "infoabstracts不能为空;"; } // 共享类型 校验数据格式 if (ToolUtil.isNull(info.getSharetype())) { resultTip += "sharetype不能为空;"; } else { if ("123".contains(info.getSharetype())) { info.setSharetype(info.getSharetype()); } else { resultTip += "sharetype字典值错误;"; } } // 是否向社会开放 校验数据格式 是否 if (ToolUtil.isNull(info.getIsopensocial())) { resultTip += "isopensocial不能为空;"; } else { if (!"不予开放,有条件开放,无条件开放".contains(info.getIsopensocial())) { resultTip += "isopensocial字典值错误;"; } } // 共享条件 校验长度 if("2".equals(info.getSharetype())) { info.setShareconditions(""); } else { if (!ToolUtil.isNull(info.getShareconditions()) && info.getShareconditions().length() > 400) { resultTip += "shareconditions不能超过400字符;"; } else if(ToolUtil.isNull(info.getShareconditions())){ resultTip += "shareconditions不能为空;"; } } if("无条件开放".equals(info.getIsopensocial())) { info.setOpencondition(""); } else { //开放条件 校验长度 if (!ToolUtil.isNull(info.getOpencondition()) && info.getOpencondition().length() > 400) { resultTip += "opencondition不能超过400字符;"; } if (ToolUtil.isNull(info.getOpencondition()) ) { resultTip += "opencondition不能为空;"; } } // 更新频率 校验数据格式 if (ToolUtil.isNull(info.getUpdatecycle())) { resultTip += "updatecycle不能为空;"; } // 数据范围 校验长度 if (!ToolUtil.isNull(info.getDatarange()) && info.getDatarange().length() > 400) { resultTip += "datarange不能超过400字符;"; } // 共享方式 校验数据格式 if (ToolUtil.isNull(info.getSharemodename())) { resultTip += "sharemodename不能为空;"; } else { for (CodeDto code : dbdcCodeService.findCodeByCodeType("gxfs")) { if (code != null && code.getId() != null && info.getSharemodename().equals(code.getCodeName())) { info.setSharemode(code.getCodeCode()); info.setSharemodeid(code.getId()); } } if (ToolUtil.isNull(info.getSharemodeid())) { resultTip += "sharemodename字典值错误;"; } } // 共享方式分类 if (ToolUtil.isNull(info.getSharemodetypename())) { resultTip += "sharemodetypename不能为空;"; } else { for (CodeDto code : dbdcCodeService.findCodeByCodeType(info.getSharemode())) { if (code != null && code.getId() != null && info.getSharemodetypename().equals(code.getCodeName())) { info.setSharemodetype(code.getCodeCode()); info.setSharemodetypeid(code.getId()); } } if (ToolUtil.isNull(info.getSharemodetypeid())) { resultTip += "sharemodetypename与sharemodename不匹配;"; } } // 是否加密 if (ToolUtil.isNull(info.getManagetype())) { resultTip += "managetype不能为空;"; } else { if (!"是,否".contains(info.getManagetype())) { resultTip += "managetype字典值错误;"; } } if(ToolUtil.isNull(resultTip)){ // 开始校验信息项目 List datalist = new ArrayList(); int j=0; for (TinfoclassDatameta data : info.getTinfoclassDatametaList()) { j=j+1; if (data.getXxxmc() != null) { // 信息项名称 长度 if (data.getXxxmc().length() > 200) { resultTip += data.getXxxmc()+":信息项的信息项名称不能超过200字符;"; } // 是否主键 if (ToolUtil.isNull(data.getIsprimary())) { resultTip += data.getXxxmc()+":信息项的isprimary必填;"; } else if (!"是否".contains(data.getIsprimary())) { resultTip += data.getXxxmc()+":信息项的isprimary字典值错误;"; } // 数据元编码 看是否存在对应数据元 if (ToolUtil.isNull(data.getGlsjy())) { data.setGlsjy("否"); } else { List metalist = datametaService.findTdataMetaByDatacode(data.getGlsjy()); if (metalist != null && metalist.size() > 0) { data.setGlsjy("是"); data.setDatametaid(metalist.get(0).getId()); data.setMetacodeid(metalist.get(0).getMetacodeid()); data.setMetacodeDis(metalist.get(0).getMetacodeDis()); data.setMetacode(metalist.get(0).getMetacode()); data.setDatatypeid(metalist.get(0).getDatatypeid()); data.setDatatypeDis(metalist.get(0).getDatatypeDis()); data.setDatatype(metalist.get(0).getDatatype()); data.setDatasize(metalist.get(0).getDatasize()); } else { resultTip += data.getXxxmc()+":glsjy未在已发布的数据元中找到相对应的数据元编码,请填写已发布数据元编码或者留空;"; } } if ("否".equals(data.getGlsjy())) { // 数据元名称 if (!ToolUtil.isNull(data.getMetaname()) && data.getMetaname().length() > 200) { resultTip += data.getXxxmc()+":信息项的metaname不超过200字符;"; } // 数据元类别 String metacodetype = ""; if (ToolUtil.isNull(data.getMetacode())) { resultTip += data.getXxxmc()+":信息项,metacode数据元类别不能为空;"; } else { for (CodeDto code : dbdcCodeService.findCodeByCodeType("sjylb")) { if (code != null && code.getId() != null && data.getMetacode().split("-")[0].equals(code.getCodeValue())) { data.setMetacodeid(code.getId()); data.setMetacodeDis(code.getCodeName()); data.setMetacode(code.getCodeValue()); metacodetype = code.getCodeCode(); } } if (ToolUtil.isNull(data.getMetacodeid())) { resultTip += data.getXxxmc()+":信息项,metacode数据元类别字典值错误;"; } } // 数据元类型 if (ToolUtil.isNull(data.getDatatype())) { resultTip += data.getXxxmc()+":信息项,datatype数据元类型不能为空;"; } else { for (CodeDto code : dbdcCodeService.findCodeByCodeType(metacodetype)) { if (code != null && code.getId() != null && data.getDatatype().split("-")[0].equals(code.getCodeValue())) { data.setDatatypeid(code.getId()); data.setDatatypeDis(code.getCodeName()); data.setDatatype(code.getCodeValue()); } } if (ToolUtil.isNull(data.getDatatypeid())) { resultTip += data.getXxxmc()+":信息项,datatype数据元类型与Metacode数据元类别不匹配;"; } } // 信息项数据长度 if (ToolUtil.isNull(data.getDatasize()) && !"sjylb_dwblx,sjylb_qtlx,sjylb_tpx,sjylb_rqx".contains(data.getMetacode())) { resultTip += data.getXxxmc()+":信息项,datasize数据长度不能为空;"; } else if (data.getDatasize().length() > 200) { resultTip += data.getXxxmc()+":信息项,datasize数据长度不超过200字符;"; } } data.setIndexnum(j); data.setTinfoClass1(info); data.setId(ToolUtil.getUUID()); datalist.add(data); } } if(datalist!=null&&datalist.size()>0){ info.setTinfoclassDatametaList(datalist);} else{ resultTip += "未维护信息项信息,tinfoclassDatametaList信息为空;"; } } return resultTip; } }