package cn.com.goldenwater.dcproj.service.impl.svwt; 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.AttAdXBase; import cn.com.goldenwater.dcproj.model.BisInspAllObj; import cn.com.goldenwater.dcproj.model.BisInspSvwtAreaRgstr; import cn.com.goldenwater.dcproj.param.*; import cn.com.goldenwater.dcproj.service.BisInspObjStrategy; import cn.com.goldenwater.dcproj.service.BisInspSvwtAreaRgstrService; 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-9-17 */ @Service @Transactional public class BisInspSvwtAreaRgstrServiceImpl extends AbstractCrudService implements BisInspSvwtAreaRgstrService,BisInspObjStrategy { @Autowired private BisInspSvwtAreaRgstrDao bisInspSvwtAreaRgstrDao; @Autowired private AttAdXBaseDao attAdXBaseDao; @Autowired private BisInspPblmDao bisInspPblmDao; @Autowired private BisInspAllObjDao bisInspAllObjDao; @Autowired private BisInspSvwtAreaRgstrWswmDao svwtAreaWswmDao; @Autowired private BisInspSvwtAreaRgstrWseDao svwtAreaWseDao; public BisInspSvwtAreaRgstrServiceImpl(BisInspSvwtAreaRgstrDao bisInspSvwtAreaRgstrDao) { super(bisInspSvwtAreaRgstrDao); this.bisInspSvwtAreaRgstrDao = bisInspSvwtAreaRgstrDao; } @Override public void insertObj(BisInspAllObj bisInspAllObj, String persId) { AttAdXBase base = attAdXBaseDao.get(bisInspAllObj.getCode()); BisInspSvwtAreaRgstr rgstr = new BisInspSvwtAreaRgstr(); BeanUtil.copyObject1(base, rgstr); rgstr.setGdX(base.getLgtd()); rgstr.setGdY(base.getLttd()); if (base.getLgtd() != null && base.getLttd() != null) { Map params = GeoUtil.gcj02towgs84(base.getLgtd(), base.getLttd()); rgstr.setPcX(params.get("lon")); rgstr.setPcY(params.get("lat")); } rgstr.setProvince(bisInspAllObj.getProvince()); rgstr.setLoc(base.getAdFullName()); rgstr.setId(UuidUtil.uuid()); rgstr.setObjId(bisInspAllObj.getObjId()); rgstr.setState("0"); rgstr.setDataStat("0"); rgstr.setGroupId(bisInspAllObj.getId()); rgstr.setPersId(persId); rgstr.setInTm(new Date()); rgstr.setUpTm(new Date()); bisInspSvwtAreaRgstrDao.insert(rgstr); } @Override public String getType() { return BisInspEnum.SVWT.getValue(); } @Override public void cleanObjData(String objId) { BisInspSvwtAreaRgstrParam param = new BisInspSvwtAreaRgstrParam(); param.setObjId(objId); List list = bisInspSvwtAreaRgstrDao.findList(param); if (list.size() > 0) { String id = list.get(0).getId(); BisInspPblmParam bisInspPblmParam = new BisInspPblmParam(); bisInspPblmParam.setRegid(id); bisInspPblmParam.setObjType(BisInspEnum.SVWT.getValue()); this.bisInspPblmDao.deleteBy(bisInspPblmParam); BisInspSvwtAreaRgstrWswmParam wswmParam = new BisInspSvwtAreaRgstrWswmParam(); wswmParam.setRgstrId(id); svwtAreaWswmDao.deleteBy(wswmParam); BisInspSvwtAreaRgstrWseParam wseParam = new BisInspSvwtAreaRgstrWseParam(); wseParam.setRgstrId(id); svwtAreaWseDao.deleteBy(wseParam); BisInspSvwtAreaRgstr rgstr = bisInspSvwtAreaRgstrDao.get(id); if (rgstr != null) { //删除督查对象 BisInspAllObjParam bisInspAllObjParam = new BisInspAllObjParam(); bisInspAllObjParam.setObjId(objId); this.bisInspAllObjDao.deleteBy(bisInspAllObjParam); } } } @Override public PageInfo findObjPageByType(TypeParam typeParam, HttpServletResponse response) { return this.findSvwtAreaPage(typeParam,response); } @Override public Object findObjListByType(TypeParam typeParam) { return this.findSvwtAreaList(typeParam); } @Override public PageInfo findSvwtAreaPage(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( bisInspSvwtAreaRgstrDao.findSvwtAreaList(typeParam), response,"节水管理与评价督查列表"); } PageHelper.startPage(typeParam); List list = bisInspSvwtAreaRgstrDao.findSvwtAreaList(typeParam); list=changeList(list); return new PageInfo(list); } @Override public List findSvwtAreaList(TypeParam typeParam) { if (StringUtils.isNotBlank(typeParam.getAdCode())) { typeParam.setAdCode(String.valueOf(AdLevelUtil.SubAd(typeParam.getAdCode()).get(SplitValue.SUBAD))); } List list = bisInspSvwtAreaRgstrDao.findSvwtAreaList(typeParam); return changeList(list); } private List changeList(List list){ if (list.size() > 0) { for (BisInspRgstrDto rgstrDto : list) { String adFullName = rgstrDto.getAdName(); if (adFullName.contains(SplitValue.HENG_SPLIT)) { String[] split = adFullName.split(SplitValue.HENG_SPLIT); if (split.length == 3) { rgstrDto.setProvince(split[0]); rgstrDto.setCity(split[1]); rgstrDto.setCountry(split[2]); } if (split.length == 2) { rgstrDto.setProvince(split[0]); rgstrDto.setCity(split[1]); rgstrDto.setCountry(""); } } else { rgstrDto.setProvince(adFullName); } } } return list; } }