package cn.com.goldenwater.dcproj.service.impl.irr; import cn.com.goldenwater.core.service.AbstractCrudService; import cn.com.goldenwater.dcproj.constValue.BisInspEnum; import cn.com.goldenwater.dcproj.constValue.BisInspIrrEnum; import cn.com.goldenwater.dcproj.constValue.SplitValue; import cn.com.goldenwater.dcproj.constValue.StateEnum; import cn.com.goldenwater.dcproj.dao.*; import cn.com.goldenwater.dcproj.dto.BisInspIrrRgstrChildreDto; import cn.com.goldenwater.dcproj.dto.BisInspRgstrDto; import cn.com.goldenwater.dcproj.model.*; import cn.com.goldenwater.dcproj.param.*; import cn.com.goldenwater.dcproj.service.BisInspIrrRgstrService; import cn.com.goldenwater.dcproj.service.BisInspObjStrategy; import cn.com.goldenwater.dcproj.utils.AdLevelUtil; import cn.com.goldenwater.id.util.UuidUtil; import cn.com.goldenwater.util.common.InspPblmUtils; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.apache.commons.lang3.StringUtils; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Date; import java.util.List; import static cn.com.goldenwater.dcproj.utils.impexcel.ImpUtil.XLS; /** * @author lune * @date 2020-4-30 */ @Service @Transactional public class BisInspIrrRgstrServiceImpl extends AbstractCrudService implements BisInspIrrRgstrService,BisInspObjStrategy { @Autowired private BisInspIrrRgstrDao bisInspIrrRgstrDao; @Autowired private BisInspPblmDao bisInspPblmDao; @Autowired private BisInspAllObjDao bisInspAllObjDao; @Autowired private AttAdXBaseDao attAdXBaseDao; public BisInspIrrRgstrServiceImpl(BisInspIrrRgstrDao bisInspIrrRgstrDao) { super(bisInspIrrRgstrDao); this.bisInspIrrRgstrDao = bisInspIrrRgstrDao; } @Override public void insertObj(BisInspAllObj bisInspAllObj, String persId) { AttAdXBase xBase = attAdXBaseDao.getByCode(bisInspAllObj.getCode()); BisInspIrrRgstr rgstr = new BisInspIrrRgstr(); rgstr.setId(UuidUtil.uuid()); rgstr.setIntm(new Date()); rgstr.setUptm(new Date()); rgstr.setDataStat(StateEnum.NOWASTSTATE.getKey()); rgstr.setState(StateEnum.NOWASTSTATE.getKey()); rgstr.setObjId(bisInspAllObj.getObjId()); rgstr.setAdCode(xBase.getAdCode()); rgstr.setAdName(xBase.getAdName()); rgstr.setAdFullName(xBase.getAdFullName()); bisInspIrrRgstrDao.insert(rgstr); } @Override public void cleanObjData(String objId) { BisInspIrrRgstrParam param = new BisInspIrrRgstrParam(); param.setObjId(objId); List< BisInspIrrRgstr> list = this.bisInspIrrRgstrDao.findList(param); if (list.size() > 0) { String id = list.get(0).getId(); BisInspPblmParam bisInspPblmParam = new BisInspPblmParam(); bisInspPblmParam.setObjId(objId); bisInspPblmParam.setObjType(BisInspEnum.MFDP.getValue()); this.bisInspPblmDao.deleteBy(bisInspPblmParam);//删除问题 bisInspIrrRgstrDao.delete(id); BisInspAllObjParam bisInspAllObjParam = new BisInspAllObjParam(); bisInspAllObjParam.setObjId(objId); this.bisInspAllObjDao.deleteBy(bisInspAllObjParam);//删除督查对象 //删除附表 BisInspIrrTownsDsuParam bisInspIrrTownsDsuParam = new BisInspIrrTownsDsuParam(); bisInspIrrTownsDsuParam.setRgstrId(id); bisInspIrrTownsDsuDao.deleteBy(bisInspIrrTownsDsuParam); BisInspIrrWellParam bisInspIrrWellParam = new BisInspIrrWellParam(); bisInspIrrWellParam.setRgstrId(id); bisInspIrrWellDao.deleteBy(bisInspIrrWellParam); BisInspIrrWasParam bisInspIrrWasParam = new BisInspIrrWasParam(); bisInspIrrWasParam.setRgstrId(id); bisInspIrrWasDao.deleteBy(bisInspIrrWasParam); BisInspIrrPitParam bisInspIrrPitParam = new BisInspIrrPitParam(); bisInspIrrPitParam.setRgstrId(id); bisInspIrrPitDao.deleteBy(bisInspIrrPitParam); BisInspIrrPondParam bisInspIrrPondParam = new BisInspIrrPondParam(); bisInspIrrPondParam.setRgstrId(id); bisInspIrrPondDao.deleteBy(bisInspIrrPondParam); BisInspIrrPustParam bisInspIrrPustParam = new BisInspIrrPustParam(); bisInspIrrPustParam.setRgstrId(id); bisInspIrrPustDao.deleteBy(bisInspIrrPustParam); BisInspIrrMicroParam bisInspIrrMicroParam = new BisInspIrrMicroParam(); bisInspIrrMicroParam.setRgstrId(id); bisInspIrrMicroDao.deleteBy(bisInspIrrMicroParam); BisInspIrrSprayParam bisInspIrrSprayParam = new BisInspIrrSprayParam(); bisInspIrrSprayParam.setRgstrId(id); bisInspIrrSprayDao.deleteBy(bisInspIrrSprayParam); BisInspIrrPipeParam bisInspIrrPipeParam = new BisInspIrrPipeParam(); bisInspIrrPipeParam.setRgstrId(id); bisInspIrrPipeDao.deleteBy(bisInspIrrPipeParam); BisInspIrrChanParam bisInspIrrChanParam = new BisInspIrrChanParam(); bisInspIrrChanParam.setRgstrId(id); bisInspIrrChanDao.deleteBy(bisInspIrrChanParam); BisInspIrrWtusrParam bisInspIrrWtusrParam = new BisInspIrrWtusrParam(); bisInspIrrWtusrParam.setRgstrId(id); bisInspIrrWtusrDao.deleteBy(bisInspIrrWtusrParam); } } @Override public PageInfo findObjPageByType(TypeParam typeParam, HttpServletResponse response) { return this.findIrrPage(typeParam,response); } @Override public Object findObjListByType(TypeParam typeParam) { if (StringUtils.isNotBlank(typeParam.getAdCode())) { typeParam.setAdCode(String.valueOf(AdLevelUtil.SubAd(typeParam.getAdCode()).get(SplitValue.SUBAD))); } if (StringUtils.isNotBlank(typeParam.getAdCodes())) { typeParam.setAdCodes(AdLevelUtil.getListAddvcd(typeParam.getAdCodes())); } List list = bisInspIrrRgstrDao.findIrrList(typeParam); return InspPblmUtils.changeList(list); } @Override public String getType() { return BisInspEnum.IRR.getValue(); } @Override public PageInfo findIrrPage(TypeParam param, HttpServletResponse response) { if (StringUtils.isNotBlank(param.getAdCode())) { param.setAdCode(String.valueOf(AdLevelUtil.SubAd(param.getAdCode()).get(SplitValue.SUBAD))); } if (StringUtils.isNotBlank(param.getAdCodes())) { param.setAdCodes(AdLevelUtil.getListAddvcd(param.getAdCodes())); } PageHelper.startPage(param); List list = bisInspIrrRgstrDao.findIrrList(param); list= InspPblmUtils.changeList(list); return new PageInfo(list); } @Autowired private BisInspIrrTownsDsuDao bisInspIrrTownsDsuDao; @Autowired private BisInspIrrWellDao bisInspIrrWellDao; @Autowired private BisInspIrrWasDao bisInspIrrWasDao; @Autowired private BisInspIrrPitDao bisInspIrrPitDao; @Autowired private BisInspIrrPondDao bisInspIrrPondDao; @Autowired private BisInspIrrPustDao bisInspIrrPustDao; @Autowired private BisInspIrrMicroDao bisInspIrrMicroDao; @Autowired private BisInspIrrSprayDao bisInspIrrSprayDao; @Autowired private BisInspIrrPipeDao bisInspIrrPipeDao; @Autowired private BisInspIrrChanDao bisInspIrrChanDao; @Autowired private BisInspIrrWtusrDao bisInspIrrWtusrDao; /** * 类型比较死 * @param bisInspIrrRgstrParam * @return */ @Override public PageInfo findChildrenPage(BisInspIrrRgstrParam bisInspIrrRgstrParam) { PageHelper.startPage(bisInspIrrRgstrParam); List list = null; if (BisInspIrrEnum.TOWNSDSU.getKey().equals(bisInspIrrRgstrParam.getType())) { BisInspIrrTownsDsuParam param = new BisInspIrrTownsDsuParam(); param.setAdName(bisInspIrrRgstrParam.getName()); param.setRgstrId(bisInspIrrRgstrParam.getId()); list = bisInspIrrTownsDsuDao.findList(param); } else if (BisInspIrrEnum.WELL.getKey().equals(bisInspIrrRgstrParam.getType())) { BisInspIrrWellParam param = new BisInspIrrWellParam(); param.setName(bisInspIrrRgstrParam.getName()); param.setRgstrId(bisInspIrrRgstrParam.getId()); list = bisInspIrrWellDao.findList(param); } else if (BisInspIrrEnum.WAS.getKey().equals(bisInspIrrRgstrParam.getType())) { BisInspIrrWasParam param = new BisInspIrrWasParam(); param.setRgstrId(bisInspIrrRgstrParam.getId()); param.setName(bisInspIrrRgstrParam.getName()); list = bisInspIrrWasDao.findList(param); } else if (BisInspIrrEnum.PIT.getKey().equals(bisInspIrrRgstrParam.getType())) { BisInspIrrPitParam param = new BisInspIrrPitParam(); param.setRgstrId(bisInspIrrRgstrParam.getId()); param.setName(bisInspIrrRgstrParam.getName()); list = bisInspIrrPitDao.findList(param); } else if (BisInspIrrEnum.POND.getKey().equals(bisInspIrrRgstrParam.getType())) { BisInspIrrPondParam param = new BisInspIrrPondParam(); param.setRgstrId(bisInspIrrRgstrParam.getId()); param.setName(bisInspIrrRgstrParam.getName()); list = bisInspIrrPondDao.findList(param); } else if (BisInspIrrEnum.PUST.getKey().equals(bisInspIrrRgstrParam.getType())) { BisInspIrrPustParam param = new BisInspIrrPustParam(); param.setRgstrId(bisInspIrrRgstrParam.getId()); param.setName(bisInspIrrRgstrParam.getName()); list = bisInspIrrPustDao.findList(param); } else if (BisInspIrrEnum.MICRO.getKey().equals(bisInspIrrRgstrParam.getType())) { BisInspIrrMicroParam param = new BisInspIrrMicroParam(); param.setRgstrId(bisInspIrrRgstrParam.getId()); list = bisInspIrrMicroDao.findList(param); } else if (BisInspIrrEnum.SPRAY.getKey().equals(bisInspIrrRgstrParam.getType())) { BisInspIrrSprayParam param = new BisInspIrrSprayParam(); param.setName(bisInspIrrRgstrParam.getName()); param.setRgstrId(bisInspIrrRgstrParam.getId()); list = bisInspIrrSprayDao.findList(param); } else if (BisInspIrrEnum.PIPE.getKey().equals(bisInspIrrRgstrParam.getType())) { BisInspIrrPipeParam param = new BisInspIrrPipeParam(); param.setRgstrId(bisInspIrrRgstrParam.getId()); param.setName(bisInspIrrRgstrParam.getName()); list = bisInspIrrPipeDao.findList(param); } else if (BisInspIrrEnum.CHAN.getKey().equals(bisInspIrrRgstrParam.getType())) { BisInspIrrChanParam param = new BisInspIrrChanParam(); param.setRgstrId(bisInspIrrRgstrParam.getId()); param.setName(bisInspIrrRgstrParam.getName()); list = bisInspIrrChanDao.findList(param); } else if (BisInspIrrEnum.WTUSR.getKey().equals(bisInspIrrRgstrParam.getType())) { BisInspIrrWtusrParam param = new BisInspIrrWtusrParam(); param.setRgstrId(bisInspIrrRgstrParam.getId()); param.setUswtName(bisInspIrrRgstrParam.getName()); List wtusrs= bisInspIrrWtusrDao.findList(param); List result = new ArrayList<>(); for (BisInspIrrWtusr wtusr : wtusrs) { BisInspIrrRgstrChildreDto dto = new BisInspIrrRgstrChildreDto(); dto.setId(wtusr.getId()); dto.setRgstrId(wtusr.getRgstrId()); dto.setObjId(wtusr.getObjId()); dto.setName(wtusr.getUswtName()); dto.setAdCode(wtusr.getAdCode()); dto.setAdName(wtusr.getAdName()); dto.setSour(wtusr.getUswtPhone()); dto.setCompDate(String.valueOf(wtusr.getEffIrrArea())); result.add(dto); } return new PageInfo<>(result); } if (list != null) { List childreDtos = formatChildreList(list); return new PageInfo<>(childreDtos); } return null; } private List formatChildreList(List list) { List dtoList = new ArrayList<>(); Field[] fileds = BisInspIrrRgstrChildreDto.class.getDeclaredFields(); for (Object object : list) { BisInspIrrRgstrChildreDto dto = new BisInspIrrRgstrChildreDto(); for (Field filed : fileds) { String fieldName = filed.getName(); try { Field fi = object.getClass().getDeclaredField(fieldName); fi.setAccessible(true); Field childField = dto.getClass().getDeclaredField(fieldName); childField.setAccessible(true); childField.set(dto,fi.get(object)); } catch (Exception e) { continue; } } dtoList.add(dto); } return dtoList; } @Override public int delChildren(BisInspIrrRgstrParam bisInspIrrRgstrParam) { if (BisInspIrrEnum.TOWNSDSU.getKey().equals(bisInspIrrRgstrParam.getType())) { bisInspIrrTownsDsuDao.delete(bisInspIrrRgstrParam.getId()); } else if (BisInspIrrEnum.WELL.getKey().equals(bisInspIrrRgstrParam.getType())) { bisInspIrrWellDao.delete(bisInspIrrRgstrParam.getId()); } else if (BisInspIrrEnum.WAS.getKey().equals(bisInspIrrRgstrParam.getType())) { bisInspIrrWasDao.delete(bisInspIrrRgstrParam.getId()); } else if (BisInspIrrEnum.PIT.getKey().equals(bisInspIrrRgstrParam.getType())) { bisInspIrrPitDao.delete(bisInspIrrRgstrParam.getId()); } else if (BisInspIrrEnum.POND.getKey().equals(bisInspIrrRgstrParam.getType())) { bisInspIrrPondDao.delete(bisInspIrrRgstrParam.getId()); } else if (BisInspIrrEnum.PUST.getKey().equals(bisInspIrrRgstrParam.getType())) { bisInspIrrPustDao.delete(bisInspIrrRgstrParam.getId()); } else if (BisInspIrrEnum.MICRO.getKey().equals(bisInspIrrRgstrParam.getType())) { bisInspIrrMicroDao.delete(bisInspIrrRgstrParam.getId()); } else if (BisInspIrrEnum.SPRAY.getKey().equals(bisInspIrrRgstrParam.getType())) { bisInspIrrSprayDao.delete(bisInspIrrRgstrParam.getId()); } else if (BisInspIrrEnum.PIPE.getKey().equals(bisInspIrrRgstrParam.getType())) { bisInspIrrPipeDao.delete(bisInspIrrRgstrParam.getId()); } else if (BisInspIrrEnum.CHAN.getKey().equals(bisInspIrrRgstrParam.getType())) { bisInspIrrChanDao.delete(bisInspIrrRgstrParam.getId()); } else if (BisInspIrrEnum.WTUSR.getKey().equals(bisInspIrrRgstrParam.getType())) { bisInspIrrWtusrDao.delete(bisInspIrrRgstrParam.getId()); } return 0; } @Autowired private ObjInspPblmsDao objInspPblmsDao; @Override public int importObjInspPblms(MultipartFile file) { String guid = "280000000000000000000000000000"; Workbook wb = null; InputStream fis = null; List rowList = new ArrayList(); try { fis = file.getInputStream(); if (file.getOriginalFilename().endsWith(XLS)) { wb = new HSSFWorkbook(fis); } else { wb = new XSSFWorkbook(fis); } Sheet sheet = wb.getSheetAt(0); Row row = null; int lastRowNum = sheet.getPhysicalNumberOfRows(); for (int i = sheet.getFirstRowNum(); i < lastRowNum; i++) { row = sheet.getRow(i); if (row != null) { rowList.add(row); } } } catch (IOException e) { e.printStackTrace(); } finally { if (wb != null) { try { wb.close(); } catch (IOException e) { e.printStackTrace(); } } if (fis != null) { try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } } if (rowList.size() > 1) { Row row = null; for (int i = 1; i < rowList.size(); i++) { row = rowList.get(i); ObjInspPblms objInspPblms = new ObjInspPblms(); objInspPblms.setPguid("28000000000000000000000000000000"); objInspPblms.setType("28"); objInspPblms.setInspPblmCate("1"); objInspPblms.setAttach("1"); objInspPblms.setSnClass("1"); objInspPblms.setDataStat("1"); for (int j = row.getFirstCellNum(); j <= row.getPhysicalNumberOfCells(); j++) { Cell cell = row.getCell(j); if (cell == null) { continue; } if (j == 0) { String index = Integer.valueOf(String.valueOf(cell)) + ""; objInspPblms.setSn(index); objInspPblms.setSnNum(index); if (index.length() < 2) { objInspPblms.setGuid("2800000000000000000000000000000" + index); } else { objInspPblms.setGuid("280000000000000000000000000000" + index); } } if (j == 1) { objInspPblms.setInspPblmsName(String.valueOf(cell)); } if (j == 2) { objInspPblms.setCheckPoint(String.valueOf(cell)); } } if (StringUtils.isBlank(objInspPblms.getInspPblmsName())) { continue; } objInspPblmsDao.insert(objInspPblms); } } return 0; } }