package cn.com.goldenwater.dcproj.service.impl.fsc; import cn.com.goldenwater.dcproj.constValue.SplitValue; import cn.com.goldenwater.dcproj.dao.*; import cn.com.goldenwater.dcproj.dto.BisInspFscPblmDto; import cn.com.goldenwater.dcproj.dto.PersAllDto; import cn.com.goldenwater.dcproj.model.*; import cn.com.goldenwater.dcproj.param.*; import cn.com.goldenwater.dcproj.service.BisInspFscPblmService; import cn.com.goldenwater.core.service.AbstractCrudService; import cn.com.goldenwater.dcproj.service.GwComFileService; import cn.com.goldenwater.dcproj.utils.BeanUtil; import cn.com.goldenwater.dcproj.utils.impexcel.ExpAndImpUtil; import cn.com.goldenwater.id.util.UuidUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; 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.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; /** * @author lune * @date 2019-7-19 */ @Service @Transactional(rollbackFor = Exception.class) public class BisInspFscPblmServiceImpl extends AbstractCrudService implements BisInspFscPblmService { @Autowired private BisInspFscPblmDao bisInspFscPblmDao; @Autowired private BisInspFscRgstrDao fscRgstrDao; @Autowired private AttAdXBaseDao attAdXBaseDao; @Autowired private BisInspAllObjDao allObjDao; @Autowired private AttFscBaseDao baseDao; @Autowired private GwComFileService gwComFileService; @Autowired private SupervisionPlanDao supervisionPlanDao; public BisInspFscPblmServiceImpl(BisInspFscPblmDao bisInspFscPblmDao) { super(bisInspFscPblmDao); this.bisInspFscPblmDao = bisInspFscPblmDao; } @Override public int insertIntoData(List> list) { Iterator> iterator = list.iterator(); List fscRgstrs = new ArrayList<>(); List pblms = new ArrayList<>(); while (iterator.hasNext()) { LinkedHashMap map = iterator.next(); BisInspFscPblmDto fscPblmDto = null; try { fscPblmDto = (BisInspFscPblmDto) ExpAndImpUtil.convertMapToBean(BisInspFscPblmDto.class, map); formatObj(fscPblmDto); } catch (Exception e) { throw new NullPointerException("转换失败"); } if (StringUtils.isBlank(fscPblmDto.getType()) || StringUtils.isBlank(fscPblmDto.getName())) { continue; } //if att other base table dont have this name AttFscBaseParam baseParam = new AttFscBaseParam(); baseParam.setName(fscPblmDto.getName()); baseParam.setType(fscPblmDto.getType()); AttFscBase base = baseDao.getBy(baseParam); if (base == null) { continue; } BisInspFscRgstrParam fscRgstrParam = new BisInspFscRgstrParam(); fscRgstrParam.setType(fscPblmDto.getType()); fscRgstrParam.setName(fscPblmDto.getName()); List rgstrs = fscRgstrDao.findList(fscRgstrParam); if (rgstrs != null && rgstrs.size() > 1) { continue; } BisInspFscRgstr rgstr = null; if (rgstrs == null || rgstrs.size() == 0) { //查询督查对象表 rgstr = new BisInspFscRgstr(); BisInspAllObjParam param = new BisInspAllObjParam(); param.setNm(fscPblmDto.getName()); param.setPtype("9"); BisInspAllObj obj = allObjDao.getBy(param); if (obj == null) { //不在督查对象中 continue; } rgstr.setId(UuidUtil.uuid()); rgstr.setObjId(obj.getObjId()); rgstr.setAdmOrg(fscPblmDto.getOrg()); rgstr.setGroupId(obj.getId()); rgstr.setState("0"); rgstr.setGdX(base.getGdX()); rgstr.setGdY(base.getGdY()); rgstr.setCenterX(base.getCenterX()); rgstr.setCenterY(base.getCenterY()); rgstr.setLocation(base.getLocation()); rgstr.setPersId(base.getPersId()); rgstr.setType(fscPblmDto.getType()); rgstr.setAdCode(fscPblmDto.getAdCode()); rgstr.setInTm(new Date()); rgstr.setUpTm(new Date()); rgstr.setName(fscPblmDto.getName()); rgstr.setDataStat("0"); this.fscRgstrDao.insert(rgstr); } else { rgstr = rgstrs.get(0); rgstr.setAdCode(fscPblmDto.getAdCode()); rgstr.setAdmOrg(fscPblmDto.getOrg()); this.fscRgstrDao.update(rgstr); } if (rgstr != null) { rgstrs.add(rgstr); if (StringUtils.isBlank(fscPblmDto.getAUnit()) || StringUtils.isBlank(fscPblmDto.getPblmDesc())) { continue; } BisInspFscPblm pblm = new BisInspFscPblm(fscPblmDto); pblm.setRectConc(rectConc(pblm.getRectConc())); if (StringUtils.isNotBlank(fscPblmDto.getId())) { bisInspFscPblmDao.update(pblm); } else { //query pblm BisInspFscPblmParam pblmParam = new BisInspFscPblmParam(); pblmParam.setAUnit(fscPblmDto.getaUnit()); pblmParam.setPblmDesc(fscPblmDto.getPblmDesc()); BisInspFscPblm pblm1 = bisInspFscPblmDao.getBy(pblmParam); if (pblm1 == null) { pblm.setId(UuidUtil.uuid()); pblm.setRgstrId(rgstr.getId()); pblm.setGroupId(rgstr.getGroupId()); pblm.setPersId(rgstr.getPersId()); pblm.setInTm(new Date()); pblm.setUpTm(new Date()); pblm.setDataStat("0"); pblms.add(pblm); } } } } if (pblms.size() == 0) { if (fscRgstrs.size() == 0) { return 1; } return fscRgstrs.size(); } if (pblms.size() > 0) { return bisInspFscPblmDao.insertList(pblms); } return 0; } private String type(String typeName) { if ("水库".equals(typeName)) { return "1"; } if ("水闸".equals(typeName)) { return "2"; } if ("人饮".equals(typeName)) { return "3"; } if ("水利工程建设".equals(typeName)) { return "4"; } if ("水利工程运行".equals(typeName)) { return "5"; } return ""; } private String revType(String typeName) { if ("1".equals(typeName)) { return "水库"; } if ("2".equals(typeName)) { return "水闸"; } if ("3".equals(typeName)) { return "人饮"; } if ("4".equals(typeName)) { return "水利工程建设"; } if ("5".equals(typeName)) { return "水利工程运行"; } return ""; } private String rectConc(String rectConc) { if ("未整改".equals(rectConc)) { return "0"; } if ("正在整改".equals(rectConc)) { return "1"; } if ("已整改".equals(rectConc)) { return "2"; } return "0"; } private String revertRectConc(String rectConc) { if ("0".equals(rectConc)) { return "未整改"; } if ("1".equals(rectConc)) { return "正在整改"; } if ("2".equals(rectConc)) { return "已整改"; } return ""; } private String getAdCode(String adName, String adFcode) { AttAdXBaseParam param = new AttAdXBaseParam(); param.setAdName(adName); param.setAdFcode(adFcode); AttAdXBase base = this.attAdXBaseDao.getBy(param); return base.getAdCode(); } private String getOrgId(String orgName, Map areaMap) { for (String key : areaMap.keySet()) { if (key.contains(orgName)) { return areaMap.get(key); } } return ""; } @Override public int updatePblm(BisInspFscPblm bisInspFscPblm) { bisInspFscPblm.setUpTm(new Date()); bisInspFscPblmDao.update(bisInspFscPblm); gwComFileService.updateBiz(bisInspFscPblm.getGwComFiles(), bisInspFscPblm.getId()); return 0; } @Override public List> findPblmList(FileParam param) { Map areaMap = new HashMap<>(); areaMap.put("001010", "黄河流域"); areaMap.put("001009", "长江流域"); areaMap.put("001013", "珠江流域"); areaMap.put("001012", "海河流域"); areaMap.put("001014", "松花江流域"); areaMap.put("001011", "淮河流域"); areaMap.put("001015", "太湖流域"); List list = this.bisInspFscPblmDao.findPblmList(param); List> pblmList = new ArrayList<>(); if (list.size() > 0) { int i = 1; for (BisInspFscPblmDto b : list) { b.setNum(String.valueOf(i++)); b.setType(revType(b.getType())); b.setRectConc(revertRectConc(b.getRectConc())); if (StringUtils.isNotBlank(b.getOrg())) { b.setOrg(getOrgId(b.getOrg(), areaMap)); } if (b.getFdTm() != null) { b.setFdTime(new SimpleDateFormat(SplitValue.TIME_SPLIT).format(b.getFdTm())); } if (b.getRectTm() != null) { b.setRectTime(new SimpleDateFormat(SplitValue.TIME_SPLIT).format(b.getRectTm())); } if (StringUtils.isNotBlank(b.getGroupObjId())) { List persAllDtoList = supervisionPlanDao.getPersAllDtoList(b.getGroupObjId(),param.getOrgId(),param.getProvince()); if (persAllDtoList != null) { String checkLead = ""; String checkMemb = ""; for (PersAllDto per : persAllDtoList) { if ("1".equals(per.getPersType())) { checkLead = checkLead + per.getPersName() + SplitValue.DOUHAO_SPLIT; } if ("2".equals(per.getPersType())) { checkMemb = checkMemb + per.getPersName() + SplitValue.DOUHAO_SPLIT; } } if (checkLead.length() > 0) { b.setCheckLead(checkLead.substring(0, checkLead.length() - 1)); } if (checkMemb.length() > 0) { b.setCheckMemb(checkMemb.substring(0, checkMemb.length() - 1)); } } } if (b.getAdFullName() != null) { if (b.getAdFullName().contains(SplitValue.HENG_SPLIT)) { String[] split = b.getAdFullName().split(SplitValue.HENG_SPLIT); if (split.length == 3) { b.setProvince(split[0]); b.setCity(split[1]); b.setCountry(split[2]); } if (split.length == 2) { b.setProvince(split[0]); b.setCity(split[1]); b.setCountry(""); } } else { b.setProvince(b.getAdFullName()); } } pblmList.add(BeanUtil.transBean2Map(b)); } } return pblmList; } private void formatObj(BisInspFscPblmDto fscPblmDto) { Map areaMap = new HashMap<>(); areaMap.put("黄河流域", "001010"); areaMap.put("长江流域", "001009"); areaMap.put("珠江流域", "001013"); areaMap.put("海河流域", "001012"); areaMap.put("松花江流域", "001014"); areaMap.put("淮河流域", "001011"); areaMap.put("太湖流域", "001015"); if (StringUtils.isNotBlank(fscPblmDto.getType())) { fscPblmDto.setType(type(fscPblmDto.getType())); } if (StringUtils.isNotBlank(fscPblmDto.getFdTime())) { try { fscPblmDto.setFdTm(new SimpleDateFormat(SplitValue.TIME_SPLIT).parse(fscPblmDto.getFdTime())); } catch (ParseException e) { } } if (StringUtils.isNotBlank(fscPblmDto.getRectTime())) { try { fscPblmDto.setRectTm(new SimpleDateFormat(SplitValue.TIME_SPLIT).parse(fscPblmDto.getRectTime())); } catch (ParseException e) { } } if (StringUtils.isNotBlank(fscPblmDto.getProvince())) { fscPblmDto.setAdCode(getAdCode(fscPblmDto.getProvince(), "000000000000")); if (StringUtils.isNotBlank(fscPblmDto.getCity())) { fscPblmDto.setAdCode(getAdCode(fscPblmDto.getCity(), fscPblmDto.getAdCode())); if (StringUtils.isNotBlank(fscPblmDto.getCountry())) { fscPblmDto.setAdCode(getAdCode(fscPblmDto.getCountry(), fscPblmDto.getAdCode())); } } } if (StringUtils.isNotBlank(fscPblmDto.getOrg())) { fscPblmDto.setOrg(getOrgId(fscPblmDto.getOrg(), areaMap)); } if (StringUtils.isNotBlank(fscPblmDto.getPblmImgSum()) && fscPblmDto.getPblmImgSum().indexOf(SplitValue.DIAN_SPLIT) > 0) { fscPblmDto.setPblmImgSum(fscPblmDto.getPblmImgSum().substring(0, fscPblmDto.getPblmImgSum().indexOf(SplitValue.DIAN_SPLIT))); } if (StringUtils.isNotBlank(fscPblmDto.getRectImgSum()) && fscPblmDto.getRectImgSum().indexOf(SplitValue.DIAN_SPLIT) > 0) { fscPblmDto.setRectImgSum(fscPblmDto.getRectImgSum().substring(0, fscPblmDto.getRectImgSum().indexOf(SplitValue.DIAN_SPLIT))); } } @Override public PageInfo findPageInfo(BisInspFscPblmParam bisInspFscPblmParam){ PageHelper.startPage(bisInspFscPblmParam.getPageNum(), bisInspFscPblmParam.getPageSize()); List bisInspFscPblms = bisInspFscPblmDao.findPageList(bisInspFscPblmParam); PageInfo page = new PageInfo(bisInspFscPblms); return page; } }