| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267 |
- package cn.com.goldenwater.dcproj.service.impl.swhs;
- import cn.com.goldenwater.dcproj.constValue.SplitValue;
- import cn.com.goldenwater.dcproj.dao.AttSwhsBaseDao;
- import cn.com.goldenwater.dcproj.model.AttSwhsBase;
- import cn.com.goldenwater.dcproj.param.AttSwhsBaseParam;
- import cn.com.goldenwater.dcproj.param.PersObjParam;
- import cn.com.goldenwater.dcproj.service.AttSwhsBaseService;
- import cn.com.goldenwater.core.service.AbstractCrudService;
- import cn.com.goldenwater.dcproj.utils.AdLevelUtil;
- 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.apache.commons.lang3.math.NumberUtils;
- 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.ArrayList;
- import java.util.Date;
- import java.util.List;
- import java.util.Map;
- /**
- * @author lune
- * @date 2019-6-3
- */
- @Service
- @Transactional(rollbackFor = Exception.class)
- public class AttSwhsBaseServiceImpl extends AbstractCrudService<AttSwhsBase, AttSwhsBaseParam> implements AttSwhsBaseService {
- @Autowired
- private AttSwhsBaseDao attSwhsBaseDao;
- public AttSwhsBaseServiceImpl(AttSwhsBaseDao attSwhsBaseDao) {
- super(attSwhsBaseDao);
- this.attSwhsBaseDao = attSwhsBaseDao;
- }
- @Override
- public int modify(AttSwhsBase p) throws Exception {
- transferGeo(p);
- int ret = attSwhsBaseDao.update(p);
- return ret;
- }
- @Override
- public PageInfo<AttSwhsBase> queryListByPage(AttSwhsBaseParam p, HttpServletResponse response) {
- if ("1".equals(p.getIsExport())) {
- ExportUtil.exportExcel(attSwhsBaseDao.findList(p),response,"水源地列表");
- }
- PageHelper.startPage(p.getPageNum(), p.getPageSize());
- List<AttSwhsBase> list = attSwhsBaseDao.findList(p);
- return new PageInfo<AttSwhsBase>(list);
- }
- @Override
- public List<AttSwhsBase> findListBy(PersObjParam persObjParam) {
- if (StringUtils.isNotBlank(persObjParam.getAdCode())) {
- persObjParam.setAdCode(AdLevelUtil.SubAd(persObjParam.getAdCode()).get(SplitValue.SUBAD).toString());
- }
- return this.attSwhsBaseDao.findListBy(persObjParam);
- }
- @Override
- public PageInfo<AttSwhsBase> findPageInfoBy(PersObjParam persObjParam) {
- if (StringUtils.isNotBlank(persObjParam.getAdCode())) {
- persObjParam.setAdCode(AdLevelUtil.SubAd(persObjParam.getAdCode()).get(SplitValue.SUBAD).toString());
- }
- PageHelper.startPage(persObjParam);
- List<AttSwhsBase> list = this.attSwhsBaseDao.findListBy(persObjParam);
- PageInfo<AttSwhsBase> pageInfo = new PageInfo(list);
- return pageInfo;
- }
- @Override
- public List<AttSwhsBase> queryList(AttSwhsBaseParam p) {
- List<AttSwhsBase> list = attSwhsBaseDao.findList(p);
- return list;
- }
- @Override
- public AttSwhsBase getObjId(String objId) {
- return attSwhsBaseDao.getObjId(objId);
- }
- @Override
- public String add(AttSwhsBase p) throws Exception {
- String uuid = UuidUtil.uuid();
- if (StringUtils.isNotBlank(p.getAdCode())) {
- String maxCwsCode = attSwhsBaseDao.getMaxCwsCode(p.getAdCode().substring(0, 6)); //根据最大code生成cwscode
- if (maxCwsCode != null) {
- Long mCcode = 0L;
- if (maxCwsCode == null) {
- mCcode = NumberUtils.createLong(p.getAdCode());
- Long gwsCode = mCcode + 1;
- p.setSwhsCode(gwsCode + "");
- } else {
- mCcode = NumberUtils.createLong(maxCwsCode);
- Long gwsCode = mCcode + 1;
- p.setSwhsCode(gwsCode + "");
- }
- } else {
- Long mCcode = NumberUtils.createLong(p.getAdCode());
- Long gwsCode = mCcode + 1;
- p.setSwhsCode(gwsCode+"");
- }
- } else {
- throw new Exception("adCode不能为空");
- }
- transferGeo(p);
- p.setId(uuid);
- p.setEffDate(new Date());
- attSwhsBaseDao.insert(p);
- return uuid;
- }
- public void transferGeo(AttSwhsBase p) {
- String src = p.getSrc();
- if (StringUtils.isNotBlank(src)) {
- if ("PC".equalsIgnoreCase(src)) {
- if (p.getSwhsLat() != null && p.getSwhsLong() != null) {
- Map<String, Double> map = GeoUtil.wgs84togcj02(p.getSwhsLong(), p.getSwhsLat());
- p.setSwhsLongGd(map.get("lon"));
- p.setSwhsLatGd(map.get("lat"));
- }
- } else if ("MOBILE".equalsIgnoreCase(src)) {
- if (p.getSwhsLatGd() != null && p.getSwhsLongGd() != null) {
- Map<String, Double> map = GeoUtil.gcj02towgs84(p.getSwhsLongGd(), p.getSwhsLatGd());
- p.setSwhsLong(map.get("lon"));
- p.setSwhsLat(map.get("lat"));
- }
- }
- } else {
- if (p.getSwhsLat() != null && p.getSwhsLong() != null) {
- Map<String, Double> map = GeoUtil.wgs84togcj02(p.getSwhsLong(), p.getSwhsLat());
- p.setSwhsLongGd(map.get("lon"));
- p.setSwhsLatGd(map.get("lat"));
- } else if (p.getSwhsLatGd() != null && p.getSwhsLongGd() != null) {
- Map<String, Double> map = GeoUtil.gcj02towgs84(p.getSwhsLongGd(), p.getSwhsLatGd());
- p.setSwhsLong(map.get("lon"));
- p.setSwhsLat(map.get("lat"));
- }
- }
- }
- @Override
- public void exportAttSwhsBase(AttSwhsBaseParam attSwhsBaseParam, HttpServletResponse response) {
- if (StringUtils.isNotBlank(attSwhsBaseParam.getAdCode())){
- attSwhsBaseParam.setAdCode(String.valueOf(AdLevelUtil.SubAd(attSwhsBaseParam.getAdCode()).get("subAd")));
- }
- List<AttSwhsBase> list = attSwhsBaseDao.findList(attSwhsBaseParam);
- if (list.size() > 0) {
- list.forEach(base -> {
- formatObj(base);
- });
- List<String> columns = new ArrayList<>();
- columns.add("id");
- columns.add("swhsCode");
- columns.add("swhsLong");
- columns.add("swhsLat");
- columns.add("persId");
- columns.add("effDate");
- columns.add("exprDate");
- columns.add("swhsLongGd");
- columns.add("swhsLatGd");
- columns.add("src");
- columns.add("displayLevel");
- columns.add("objId");
- columns.add("state");
- ExportUtil.exportExcel(list, response, "水源地列表", columns, AttSwhsBase.class);
- }
- }
- private void formatObj(AttSwhsBase base) {
- if (base == null) {
- return;
- }
- if (StringUtils.isNotBlank(base.getWainWasoType())) {
- formatWainWasoType(base);
- }
- if (StringUtils.isNotBlank(base.getWainUse())) {
- formatWainUse(base);
- }
- if (StringUtils.isNotBlank(base.getWaquGoal())) {
- base.setWaquGoal(formatGoal(base.getWaquGoal()));
- }
- if (StringUtils.isNotBlank(base.getWquaCat())){
- base.setWquaCat(formatGoal(base.getWquaCat()));
- }
- if (StringUtils.isNotBlank(base.getIfMonWqua())){
- base.setIfMonWqua(formatCommon(base.getIfMonWqua()));
- }
- if (StringUtils.isNotBlank(base.getIfWquaUptoSta())){
- base.setIfWquaUptoSta(formatCommon(base.getIfWquaUptoSta()));
- }
- if (StringUtils.isNotBlank(base.getIfWsProt())) {
- base.setIfWsProt(formatCommon(base.getIfWsProt()));
- }
- }
- private String formatCommon(String ifMonWqua) {
- switch (ifMonWqua) {
- case "1":
- return "是";
- case "2":
- return "否";
- default:
- return "";
- }
- }
- private String formatGoal(String value) {
- switch (value) {
- case "1":
- return "Ⅰ类水质";
- case "2":
- return "Ⅱ类水质";
- case "3":
- return "Ⅲ类水质";
- case "4":
- return "Ⅳ类水质";
- case "5":
- return "Ⅴ类水质";
- case "6":
- return "劣Ⅴ类水质目标";
- }
- return "";
- }
- private void formatWainUse(AttSwhsBase base) {
- switch (base.getWainUse()) {
- case "1":
- base.setWainUse("城乡生活");
- break;
- case "2":
- base.setWainUse("城镇生活");
- break;
- case "3":
- base.setWainUse("乡村生活");
- break;
- }
- }
- private void formatWainWasoType(AttSwhsBase base) {
- switch (base.getWainWasoType()) {
- case "1":
- base.setWainWasoType("水库");
- break;
- case "2":
- base.setWainWasoType("湖泊");
- break;
- case "3":
- base.setWainWasoType("河流");
- break;
- case "9":
- base.setWainWasoType("其他");
- break;
- }
- }
- }
|