package cn.com.goldenwater.dcproj.service.impl.tac; import cn.com.goldenwater.core.service.AbstractCrudService; import cn.com.goldenwater.dcproj.dao.TacObjSubjectDao; import cn.com.goldenwater.dcproj.dao.TacPawpUnitSctnDao; import cn.com.goldenwater.dcproj.model.TacObjSubject; import cn.com.goldenwater.dcproj.model.TacPawpUnitSctn; import cn.com.goldenwater.dcproj.param.TacPawpUnitSctnParam; import cn.com.goldenwater.dcproj.service.TacPawpUnitSctnService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.io.BufferedReader; import java.io.Reader; import java.sql.Clob; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * @author lune * @date 2019-6-27 */ @Service @Transactional public class TacPawpUnitSctnServiceImpl extends AbstractCrudService implements TacPawpUnitSctnService { @Autowired private TacPawpUnitSctnDao tacPawpUnitSctnDao; @Autowired private TacObjSubjectDao tacObjSubjectDao; public TacPawpUnitSctnServiceImpl(TacPawpUnitSctnDao tacPawpUnitSctnDao) { super(tacPawpUnitSctnDao); this.tacPawpUnitSctnDao = tacPawpUnitSctnDao; } @Override public List findList(TacPawpUnitSctnParam tacPawpUnitSctnParam) { /** * 根据单位性质查询对应单位 如果获取不到返回空 如果类型是 101 其他的情况返回空 * 50或者92(供应商) 则返回 92,100 */ String sysType = tacPawpUnitSctnParam.getSysType(); TacObjSubject tacObjSubject = tacObjSubjectDao.get(sysType); if (tacObjSubject == null) { return null; } String type = tacObjSubject.getSysType(); if ("101".equals(type)) { return null; } else { tacPawpUnitSctnParam.setSysType(type); } if ("50".equals(sysType) || "92".equals(sysType)) { tacPawpUnitSctnParam.setSysType(""); tacPawpUnitSctnParam.setSysTypes("92,100"); } List list = tacPawpUnitSctnDao.findList(tacPawpUnitSctnParam); List list1 = new ArrayList<>(); for (TacPawpUnitSctn tac : list) { String sysNm = tac.getSysNm(); if (StringUtils.isNotBlank(sysNm)) { tacPawpUnitSctnParam = new TacPawpUnitSctnParam(); tacPawpUnitSctnParam.setSctnName(sysNm); tacPawpUnitSctnParam.setRgstrId(tac.getRgstrId()); tacPawpUnitSctnParam.setSysType(tac.getSysType()); int count = tacPawpUnitSctnDao.selectCount(tacPawpUnitSctnParam); Map map = tacPawpUnitSctnDao.getSctns(tacPawpUnitSctnParam); if (map != null) { if (map.get("SCTN_NAMES") != null) { String sctns = ""; if (count > 1) { sctns = String.valueOf(map.get("SCTN_NAMES")); // sctns = ClobToString(clob); } else { sctns = String.valueOf(map.get("SCTN_NAMES")); } if (StringUtils.isNotBlank(sctns)) { tac.setSctnName(sctns); } } } } list1.add(tac); } return list1; } public String ClobToString(Clob clob) { String reString = ""; try { Reader is = clob.getCharacterStream();// 得到流 BufferedReader br = new BufferedReader(is); String s = br.readLine(); StringBuffer sb = new StringBuffer(); while (s != null) {// 执行循环将字符串全部取出付值给StringBuffer由StringBuffer转成STRING sb.append(s); s = br.readLine(); } reString = sb.toString(); if (br != null) { br.close(); } if (is != null) { is.close(); } } catch (Exception e) { e.printStackTrace(); } finally { return reString; } } }