package cn.com.goldenwater.dcproj.service.impl.swhs; import cn.com.goldenwater.dcproj.constValue.BisInspEnum; import cn.com.goldenwater.dcproj.constValue.SplitValue; import cn.com.goldenwater.dcproj.dao.*; import cn.com.goldenwater.dcproj.dto.BisInspRgstrDto; import cn.com.goldenwater.dcproj.model.AttSwhsBase; import cn.com.goldenwater.dcproj.model.AttSwhsBaseCrrct; import cn.com.goldenwater.dcproj.model.BisInspAllObj; import cn.com.goldenwater.dcproj.model.BisInspSwhsRgstr; import cn.com.goldenwater.dcproj.param.*; import cn.com.goldenwater.dcproj.service.BisInspObjStrategy; import cn.com.goldenwater.dcproj.service.BisInspSwhsRgstrService; import cn.com.goldenwater.core.service.AbstractCrudService; import cn.com.goldenwater.dcproj.utils.AdLevelUtil; import cn.com.goldenwater.dcproj.utils.BeanUtil; import cn.com.goldenwater.dcproj.utils.GeoUtil; import cn.com.goldenwater.dcproj.utils.expExcel.ExportUtil; 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 javax.servlet.http.HttpServletResponse; import java.util.Date; import java.util.List; import java.util.Map; /** * @author lune * @date 2019-8-7 */ @Service @Transactional public class BisInspSwhsRgstrServiceImpl extends AbstractCrudService implements BisInspSwhsRgstrService,BisInspObjStrategy { @Autowired private BisInspSwhsRgstrDao bisInspSwhsRgstrDao; @Autowired private AttSwhsBaseCrrctDao attSwhsBaseCrrctDao; @Autowired private AttSwhsBaseDao swhsBaseDao; @Autowired private BisInspPblmDao bisInspPblmDao; @Autowired private BisInspSwhsRgstrSafetyDao swhsRgstrSafetyDao; @Autowired private BisInspSwhsRgstrMeasuresDao swhsRgstrMeasuresDao; @Autowired private BisInspSwhsRgstrWaterDao swhsRgstrWaterDao; @Autowired private BisInspAllObjDao bisInspAllObjDao; public BisInspSwhsRgstrServiceImpl(BisInspSwhsRgstrDao bisInspSwhsRgstrDao) { super(bisInspSwhsRgstrDao); this.bisInspSwhsRgstrDao = bisInspSwhsRgstrDao; } @Override public void insertObj(BisInspAllObj bisInspAllObj, String persId) { AttSwhsBase base = swhsBaseDao.get(bisInspAllObj.getCode()); BisInspSwhsRgstr rgstr = new BisInspSwhsRgstr(); BeanUtil.copyObject1(base, rgstr); rgstr.setCenterX(base.getSwhsLong()); rgstr.setCenterY(base.getSwhsLat()); rgstr.setGdX(base.getSwhsLongGd()); rgstr.setGdY(base.getSwhsLatGd()); rgstr.setId(UuidUtil.uuid()); rgstr.setObjId(bisInspAllObj.getObjId()); rgstr.setSwhsId(base.getId()); rgstr.setState("0"); rgstr.setDataStat("0"); rgstr.setProvince(bisInspAllObj.getProvince()); rgstr.setGroupId(bisInspAllObj.getId()); rgstr.setPersId(persId); rgstr.setInTm(new Date()); rgstr.setUpTm(new Date()); bisInspSwhsRgstrDao.insert(rgstr); } @Override public String getType() { return BisInspEnum.SWHS.getValue(); } @Override public void cleanObjData(String objId) { BisInspSwhsRgstrParam param = new BisInspSwhsRgstrParam(); param.setObjId(objId); List list = bisInspSwhsRgstrDao.findList(param); if (list.size() > 0) { String id = list.get(0).getId(); BisInspPblmParam bisInspPblmParam = new BisInspPblmParam(); bisInspPblmParam.setRegid(id); bisInspPblmParam.setObjType(BisInspEnum.SWHS.getValue()); this.bisInspPblmDao.deleteBy(bisInspPblmParam); //删除安全保障达标落实情况表 BisInspSwhsRgstrSafetyParam safetyParam = new BisInspSwhsRgstrSafetyParam(); safetyParam.setRgstrId(id); swhsRgstrSafetyDao.deleteBy(safetyParam); //删除保护措施监管情况 BisInspSwhsRgstrMeasuresParam measuresParam = new BisInspSwhsRgstrMeasuresParam(); measuresParam.setId(id); swhsRgstrMeasuresDao.deleteBy(measuresParam); //删除地级行政区应急备用水源建设情况表 BisInspSwhsRgstrWaterParam waterParam = new BisInspSwhsRgstrWaterParam(); waterParam.setRgstrId(id); swhsRgstrWaterDao.deleteBy(waterParam); BisInspSwhsRgstr rgstr = bisInspSwhsRgstrDao.get(id); bisInspSwhsRgstrDao.delete(id); if (rgstr != null) { //删除督查对象 BisInspAllObjParam bisInspAllObjParam = new BisInspAllObjParam(); bisInspAllObjParam.setObjId(objId); this.bisInspAllObjDao.deleteBy(bisInspAllObjParam); } } } @Override public PageInfo findObjPageByType(TypeParam typeParam, HttpServletResponse response) { return findSwhsPage(typeParam,response); } @Override public Object findObjListByType(TypeParam typeParam) { if (StringUtils.isNotBlank(typeParam.getAdCode())) { typeParam.setAdCode(String.valueOf(AdLevelUtil.SubAd(typeParam.getAdCode()).get(SplitValue.SUBAD))); } return bisInspSwhsRgstrDao.findSwhsPage(typeParam); } @Override public PageInfo findSwhsPage(TypeParam typeParam, HttpServletResponse response) { if (StringUtils.isNotBlank(typeParam.getAdCode())) { typeParam.setAdCode(String.valueOf(AdLevelUtil.SubAd(typeParam.getAdCode()).get(SplitValue.SUBAD))); } if ("1".equals(typeParam.getIsExport())) { ExportUtil.exportExcel(bisInspSwhsRgstrDao.findSwhsPage(typeParam), response,"水源地列表"); } PageHelper.startPage(typeParam); List list = bisInspSwhsRgstrDao.findSwhsPage(typeParam); if (list.size() > 0) { for(BisInspRgstrDto rgstr : list) { if (StringUtils.isNotBlank(rgstr.getAdName())){ String[] adFullNames = rgstr.getAdName().split(SplitValue.HENG_SPLIT); rgstr.setProvince(adFullNames[0]); if (adFullNames.length > 1) { rgstr.setCity(adFullNames[1]); } if (adFullNames.length > 2) { rgstr.setCountry(adFullNames[2]); } } } } return new PageInfo(list); } @Override public List findSwhsList(TypeParam typeParam,HttpServletResponse response) { if (StringUtils.isNotBlank(typeParam.getAdCode())) { typeParam.setAdCode(String.valueOf(AdLevelUtil.SubAd(typeParam.getAdCode()).get(SplitValue.SUBAD))); } List list = bisInspSwhsRgstrDao.findSwhsPage(typeParam); if (list.size() > 0) { for(BisInspRgstrDto rgstr : list) { if (StringUtils.isNotBlank(rgstr.getAdName())){ String[] adFullNames = rgstr.getAdName().split(SplitValue.HENG_SPLIT); rgstr.setProvince(adFullNames[0]); if (adFullNames.length > 1) { rgstr.setCity(adFullNames[1]); } if (adFullNames.length > 2) { rgstr.setCountry(adFullNames[2]); } } } } ExportUtil.exportExcel(typeParam.getIsExport(), list, response); return list; } @Override public int updateRgstr(BisInspSwhsRgstr bisInspSwhsRgstr) { if (bisInspSwhsRgstr.getGdX() != null && bisInspSwhsRgstr.getGdY() !=null) { if (bisInspSwhsRgstr.getGdX().intValue() != 0 && bisInspSwhsRgstr.getGdY().intValue() != 0) { Map map = GeoUtil.gcj02towgs84(bisInspSwhsRgstr.getGdX(), bisInspSwhsRgstr.getGdY()); bisInspSwhsRgstr.setCenterX(map.get("long")); bisInspSwhsRgstr.setCenterY(map.get("lat")); } } bisInspSwhsRgstrDao.update(bisInspSwhsRgstr); if (StringUtils.isNotBlank(bisInspSwhsRgstr.getSwhsId())) { AttSwhsBaseCrrct base = new AttSwhsBaseCrrct(); BeanUtil.copyObject1(bisInspSwhsRgstr, base); base.setId(UuidUtil.uuid()); base.setSwhsCode(bisInspSwhsRgstr.getSwhsId()); base.setInTm(new Date()); base.setUpTm(new Date()); base.setSwhsLongGd(bisInspSwhsRgstr.getGdX()); base.setSwhsLatGd(bisInspSwhsRgstr.getGdY()); base.setSwhsLong(bisInspSwhsRgstr.getCenterX()); base.setSwhsLat(bisInspSwhsRgstr.getCenterY()); attSwhsBaseCrrctDao.insert(base); } return 0; } }