| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472 |
- package cn.com.goldenwater.dcproj.service.impl.grw;
- import cn.com.goldenwater.core.service.AbstractCrudService;
- import cn.com.goldenwater.dcproj.constValue.BisInspEnum;
- import cn.com.goldenwater.dcproj.constValue.CommonLabel;
- import cn.com.goldenwater.dcproj.constValue.SplitValue;
- import cn.com.goldenwater.dcproj.dao.*;
- import cn.com.goldenwater.dcproj.dto.*;
- import cn.com.goldenwater.dcproj.enums.*;
- import cn.com.goldenwater.dcproj.model.*;
- import cn.com.goldenwater.dcproj.param.*;
- import cn.com.goldenwater.dcproj.service.AttGrwBaseService;
- import cn.com.goldenwater.dcproj.service.BisInspAllObjService;
- import cn.com.goldenwater.dcproj.service.BisInspGrwService;
- import cn.com.goldenwater.dcproj.service.BisInspObjStrategy;
- import cn.com.goldenwater.dcproj.utils.AdLevelUtil;
- import cn.com.goldenwater.dcproj.utils.DateUtils;
- import cn.com.goldenwater.dcproj.utils.GrwScoreRule;
- import cn.com.goldenwater.id.util.UuidUtil;
- import cn.com.goldenwater.target.CheckException;
- 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.text.SimpleDateFormat;
- import java.util.Date;
- import java.util.List;
- /**
- * @author zhengdafei
- * @date 2019-3-29
- */
- @Service
- @Transactional(rollbackFor = Exception.class)
- public class BisInspGrwServiceImpl extends AbstractCrudService<BisInspGrw, BisInspGrwParam> implements BisInspGrwService, BisInspObjStrategy {
- @Autowired
- private BisInspFscRgstrDao bisInspFscRgstrDao;
- @Autowired
- private BisInspGrwDao bisInspGrwDao;
- @Autowired
- private AttGrwBaseDao attGrwBaseDao;
- @Autowired
- BisInspPblmDao bisInspPblmDao;
- @Autowired
- private BisInspBaseDao bisInspBaseDao;
- @Autowired
- private BisInspAllObjDao bisInspAllObjDao;
- @Autowired
- private AttGrwBaseService attGrwBaseService;
- @Autowired
- private BisInspAllObjService bisInspAllObjService;
- public BisInspGrwServiceImpl(BisInspGrwDao bisInspGrwDao) {
- super(bisInspGrwDao);
- this.bisInspGrwDao = bisInspGrwDao;
- }
- @Override
- public BisInspGrw add(BisInspGrw p) throws Exception {
- String uuid = UuidUtil.uuid();
- String now = DateUtils.getTodayYMDHMS();
- p.setInTm(now);
- p.setUpTm(now);
- if (StringUtils.isBlank(p.getId())) {
- p.setId(uuid);
- }
- int ret = this.insert(p);
- if (ret != -2147482646) {
- throw new Exception("插入失败");
- }
- return bisInspGrwDao.get(uuid);
- }
- @Override
- public BisInspGrw modify(BisInspGrw p) throws Exception {
- if (StringUtils.isBlank(p.getId())) {
- throw new Exception("id 不能为空!");
- }
- BisInspGrw bisInspGrw = bisInspGrwDao.get(p.getId());
- if (bisInspGrw == null) {
- throw new Exception("该记录不存在,请刷新页面重试!");
- }
- String now = DateUtils.getTodayYMDHMS();
- p.setUpTm(now);
- int ret = bisInspGrwDao.update(p);
- if (ret != -2147482646) {
- throw new Exception("更新失败");
- }
- BisInspGrw bean = bisInspGrwDao.get(p.getId());
- return bean;
- }
- @Override
- public void remove(String id) throws Exception {
- if (StringUtils.isBlank(id)) {
- throw new Exception("id 不能为空!");
- }
- BisInspGrw bisInspGrw = bisInspGrwDao.get(id);
- if (bisInspGrw == null) {
- throw new Exception("该记录不存在,请刷新页面重试");
- }
- int ret = bisInspGrwDao.delete(id);
- if (ret != -2147482646) {
- throw new Exception("删除失败");
- }
- }
- @Override
- public BisInspGrwDataQualityDto getDataQuality(String id) throws Exception {
- BisInspGrwDataQualityDto dto = new BisInspGrwDataQualityDto();
- BisInspGrw bisInspGrw = bisInspGrwDao.get(id);
- if (bisInspGrw == null) {
- throw new Exception("此数据不存在");
- }
- if (StringUtils.isBlank(bisInspGrw.getSttp())) {
- throw new Exception("测站类型不存在");
- }
- dto.setHandScore(bisInspGrw.getHandScore());
- dto.setId(bisInspGrw.getId());
- dto.setPercentage(bisInspGrw.getPercentage());
- dto.setRepeatability(bisInspGrw.getRepeatability());
- dto.setRepeatabilityScore(bisInspGrw.getRepeatabilityScore());
- dto.setSttp(bisInspGrw.getSttp());
- dto.setPercentageScore(bisInspGrw.getPercentageScore());
- Long score = 0L;
- score = GrwScoreRule.calDataQuality(bisInspGrw);
- dto.setScore(score);
- return dto;
- }
- @Override
- public BisInspGrw addDCst(AddDCstParam param) throws Exception {
- AttGrwBase base = attGrwBaseDao.get(param.getStcd());
- if (base == null) {
- throw new CheckException("此测站:" + param.getStcd() + " 不存在");
- }
- // 基础数据只有84但无高德,添加到督查表同时转换成高德存储
- attGrwBaseService.transferGeo(base, RequestSourceEnum.PC.getValue());
- attGrwBaseService.modify(base);
- //判断是否已经插入
- BisInspAllObjDto bisInspAllObjDto = new BisInspAllObjDto();
- bisInspAllObjDto.setCode(param.getStcd());
- bisInspAllObjDto.setId(param.getId());
- bisInspAllObjDto.setPtype(PtypeEnum.GRW.getValue());
- Integer count = bisInspAllObjService.selectCount(bisInspAllObjDto);
- if (count > 0) {
- throw new Exception("重复添加");
- }
- bisInspAllObjDto.setNm(base.getStnm());
- bisInspAllObjDto.setLgtd(base.getLgtd());
- bisInspAllObjDto.setLttd(base.getLttd());
- bisInspAllObjDto.setLgtdpc(base.getLgtdPc());
- bisInspAllObjDto.setLttdpc(base.getLttdPc());
- bisInspAllObjDto.setAdCode(param.getProvince());
- bisInspAllObjDto.setOrgId(param.getOrgId());
- String guid = UuidUtil.uuid();
- bisInspAllObjDto.setObjId(guid);
- Integer i = bisInspAllObjService.insertObj(bisInspAllObjDto);
- // 添加登记表
- BisInspGrw p = new BisInspGrw();
- p.setStnm(base.getStnm());
- p.setStlc(base.getStlc());
- p.setCheckPid(param.getCheckPid());
- p.setCheckPname(param.getCheckPname());
- p.setStcd(param.getStcd());
- p.setObjId(guid);
- p.setSttp(StringUtils.isNotBlank(base.getSttp()) ? base.getSttp() : GrwSttpEnum.PROV.getValue());
- p.setMaintainStatus(NormalEnum.NO.getValue());
- p.setPercentageStatus(NormalEnum.NO.getValue());
- p.setInspState(GrwStateEnum.YET.getValue());
- return add(p);
- }
- @Override
- public BisInspGrw updateDataQuality(BisInspGrwDataQualityDto p) throws Exception {
- if (StringUtils.isBlank(p.getId())) {
- throw new Exception("id不能为空");
- }
- if (StringUtils.isBlank(p.getSttp())) {
- throw new Exception("测站类型不能为空");
- }
- BisInspGrw bisInspGrw = bisInspGrwDao.get(p.getId());
- if (bisInspGrw == null) {
- throw new Exception("此数据不存在" + p.getId());
- }
- bisInspGrw.setCheckPid(p.getCheckPid());
- bisInspGrw.setCheckPname(p.getCheckPname());
- bisInspGrw.setRepeatability(p.getRepeatability());
- bisInspGrw.setRepeatabilityScore(p.getRepeatabilityScore());
- bisInspGrw.setPercentage(p.getPercentage());
- bisInspGrw.setPercentageScore(p.getPercentageScore());
- bisInspGrw.setHandScore(p.getHandScore());
- GrwScoreRule.calTotalScore(bisInspGrw);
- bisInspGrw.setPercentageStatus(p.getPercentageStatus());
- bisInspGrw.setInspState(GrwStateEnum.ING.getValue());
- BisInspGrw one = modify(bisInspGrw);
- return one;
- }
- @Override
- public BisInspGrwMainTainDataDto getMainTainData(String id) throws Exception {
- BisInspGrwMainTainDataDto dto = new BisInspGrwMainTainDataDto();
- BisInspGrw bisInspGrw = bisInspGrwDao.get(id);
- if (bisInspGrw == null) {
- throw new Exception("此数据不存在" + id);
- }
- dto.setId(id);
- dto.setExactScore(bisInspGrw.getExactScore());
- dto.setFlagExact(bisInspGrw.getFlagExact());
- dto.setFlagMark(bisInspGrw.getFlagMark());
- dto.setMarkScore(bisInspGrw.getMarkScore());
- dto.setFlagSign(bisInspGrw.getFlagSign());
- dto.setSignScore(bisInspGrw.getSignScore());
- dto.setFlagSafeguard(bisInspGrw.getFlagSafeguard());
- dto.setSafeguardScore(bisInspGrw.getSafeguardScore());
- dto.setFlagTool(bisInspGrw.getFlagTool());
- dto.setToolScore(bisInspGrw.getToolScore());
- dto.setFlagTrain(bisInspGrw.getFlagTrain());
- dto.setTrainScore(bisInspGrw.getTrainScore());
- dto.setSttp(bisInspGrw.getSttp());
- dto.setToolProfScore(bisInspGrw.getToolProfScore());
- dto.setToolTsoScore(bisInspGrw.getToolTsoScore());
- dto.setWellProtScore(bisInspGrw.getWellProtScore());
- dto.setCheckPid(bisInspGrw.getCheckPid());
- dto.setCheckPname(bisInspGrw.getCheckPname());
- Long score = GrwScoreRule.calMainTainScore(bisInspGrw);
- dto.setScore(score);
- return dto;
- }
- @Override
- public BisInspGrw updateMainTainData(BisInspGrwMainTainDataDto p) throws Exception {
- BisInspGrw one = new BisInspGrw();
- if (StringUtils.isBlank(p.getId())) {
- throw new Exception("id不能为空");
- }
- if (StringUtils.isBlank(p.getSttp())) {
- throw new Exception("测站类型不能为空");
- }
- BisInspGrw bisInspGrw = bisInspGrwDao.get(p.getId());
- if (bisInspGrw == null) {
- throw new Exception("此数据不存在");
- }
- bisInspGrw.setCheckPid(p.getCheckPid());
- bisInspGrw.setCheckPname(p.getCheckPname());
- bisInspGrw.setFlagSign(p.getFlagSign());
- bisInspGrw.setSignScore(p.getSignScore());
- bisInspGrw.setFlagMark(p.getFlagMark());
- bisInspGrw.setMarkScore(p.getMarkScore());
- bisInspGrw.setFlagExact(p.getFlagExact());
- bisInspGrw.setExactScore(p.getExactScore());
- bisInspGrw.setFlagSafeguard(p.getFlagSafeguard());
- bisInspGrw.setSafeguardScore(p.getSafeguardScore());
- bisInspGrw.setFlagTool(p.getFlagTool());
- bisInspGrw.setToolScore(p.getToolScore());
- bisInspGrw.setToolProfScore(p.getToolProfScore());
- bisInspGrw.setToolTsoScore(p.getToolTsoScore());
- bisInspGrw.setWellProtScore(p.getWellProtScore());
- bisInspGrw.setFlagTrain(p.getFlagTrain());
- bisInspGrw.setTrainScore(p.getTrainScore());
- GrwScoreRule.calTotalScore(bisInspGrw);
- bisInspGrw.setMaintainStatus(p.getMaintainStatus());
- bisInspGrw.setInspState(GrwStateEnum.ING.getValue());
- one = modify(bisInspGrw);
- return one;
- }
- @Override
- public BisInspGrw submitData(GrwSubmitParam p) throws Exception {
- if (StringUtils.isBlank(p.getId())) {
- throw new Exception("id不能为空");
- }
- if (StringUtils.isBlank(p.getSttp())) {
- throw new Exception("测站类型不能为空");
- }
- BisInspGrw bisInspGrw = bisInspGrwDao.get(p.getId());
- if (bisInspGrw == null) {
- throw new Exception("此数据不存在");
- }
- bisInspGrw.setSttp(p.getSttp());
- bisInspGrw.setMonitorRate(p.getMonitorRate());
- bisInspGrw.setCheckPid(p.getCheckPid());
- bisInspGrw.setCheckPname(p.getCheckPname());
- bisInspGrw.setMaintainStatus(p.getMaintainStatus());
- bisInspGrw.setPercentageStatus(p.getPercentageStatus());
- bisInspGrw.setInspState(GrwStateEnum.END.getValue());
- BisInspGrw one = modify(bisInspGrw);
- return one;
- }
- @Override
- public BisInspGrwNormalDto getNormalData(String id) throws Exception {
- BisInspGrwNormalDto dto = new BisInspGrwNormalDto();
- BisInspGrw bisInspGrw = bisInspGrwDao.get(id);
- if (bisInspGrw == null) {
- throw new Exception("登记表没有此数据,请先添加到登记表" + id);
- }
- if (StringUtils.isBlank(bisInspGrw.getStcd())) {
- throw new Exception("后台数据缺少测站编码,请联系管理员");
- }
- AttGrwBase attGrwBase = attGrwBaseDao.get(bisInspGrw.getStcd());
- if (attGrwBase == null) {
- throw new Exception("基础表中无此测站" + bisInspGrw.getStcd());
- }
- dto.setStcd(attGrwBase.getStcd());
- dto.setStnm(attGrwBase.getStnm());
- dto.setLgtd(attGrwBase.getLgtd());
- dto.setLttd(attGrwBase.getLttd());
- dto.setLgtdPc(attGrwBase.getLgtdPc());
- dto.setLttdPc(attGrwBase.getLttdPc());
- dto.setMaintainStatus(bisInspGrw.getMaintainStatus());
- dto.setPercentageStatus(bisInspGrw.getPercentageStatus());
- dto.setAllScore(bisInspGrw.getAllScore());
- dto.setId(bisInspGrw.getId());
- dto.setInspState(bisInspGrw.getInspState());
- dto.setSttp(bisInspGrw.getSttp());
- dto.setStlc(bisInspGrw.getStlc());
- dto.setMonitorRate(bisInspGrw.getMonitorRate());
- if (GrwSttpEnum.PROVAUTO.getValue().equals(bisInspGrw.getSttp()) || GrwSttpEnum.PROVHAND.getValue().equals(bisInspGrw.getSttp())
- || GrwSttpEnum.NATIONAL.getValue().equals(bisInspGrw.getSttp()) || GrwSttpEnum.PROV.getValue().equals(bisInspGrw.getSttp())) {
- dto.setMaintainScore(GrwScoreRule.calMainTainScore(bisInspGrw));
- dto.setPercentScore(GrwScoreRule.calDataQuality(bisInspGrw));
- } else {
- dto.setMaintainScore(0L);
- dto.setPercentScore(0L);
- }
- if (StringUtils.isNotBlank(bisInspGrw.getCheckComment())) {
- dto.setChkCommentStatus(NormalEnum.YES.getValue());
- } else {
- dto.setChkCommentStatus(NormalEnum.NO.getValue());
- }
- return dto;
- }
- @Override
- public PageInfo<BisInspGrwListDto> findPageByType(TypeParam typeParam) throws Exception {
- if (StringUtils.isNotBlank(typeParam.getAdCode())) {
- typeParam.setAdCode(String.valueOf(AdLevelUtil.SubAd(typeParam.getAdCode()).get(SplitValue.SUBAD)));
- }
- PageHelper.startPage(typeParam);
- List<BisInspGrwListDto> list = bisInspGrwDao.findPageByType(typeParam);
- return new PageInfo<BisInspGrwListDto>(list);
- }
- @Override
- public List<BisInspGrwListDto> findListByType(TypeParam typeParam) throws Exception {
- List<BisInspGrwListDto> list = bisInspGrwDao.findPageByType(typeParam);
- return list;
- }
- @Override
- public PageInfo<BisInspGrwDetailDto> queryDetailListWithPblm(GetPageByNodeIdParam param) throws Exception {
- PageHelper.startPage(param.getPageNum(), param.getPageSize());
- List<BisInspGrwDetailDto> list = bisInspGrwDao.queryDetailListWithPblm(param);
- for (BisInspGrwDetailDto dto : list) {
- dto.setSttpNm(GrwSttpEnum.getName(dto.getSttp()));
- BisInspPblmParam p = new BisInspPblmParam();
- p.setRegid(dto.getId());
- p.setObjId(dto.getObjId());
- List<BisInspPblm> pblms = bisInspPblmDao.findList(p);
- dto.setList(pblms);
- dto.setProblmNum(pblms.size());
- }
- return new PageInfo<BisInspGrwDetailDto>(list);
- }
- @Override
- public BisInspGrw setProvSttp(BisInspGrwSetSttpParam param) throws Exception {
- if (StringUtils.isBlank(param.getId())) {
- throw new Exception("登记表id不能为空");
- }
- if (StringUtils.isBlank(param.getSttp())) {
- throw new Exception("测站类型不能为空");
- }
- if (!GrwSttpEnum.PROVHAND.getValue().equals(param.getSttp()) && !GrwSttpEnum.PROVAUTO.getValue().equals(param.getSttp())) {
- throw new Exception("测站类型不正确:" + param.getSttp());
- }
- BisInspGrw bisInspGrw = bisInspGrwDao.get(param.getId());
- if (bisInspGrw == null) {
- throw new Exception("此数据不存在:" + param.getId());
- }
- bisInspGrw.setId(param.getId());
- bisInspGrw.setSttp(param.getSttp());
- bisInspGrw.setCheckPid(param.getCheckPid());
- bisInspGrw.setCheckPname(param.getCheckPname());
- BisInspGrw one = modify(bisInspGrw);
- return one;
- }
- @Override
- public int insert(BisInspGrw b) {
- int ret = 1;
- BisInspGrwParam bisInspGrwParam = new BisInspGrwParam();
- bisInspGrwParam.setObjId(b.getObjId());
- List<BisInspGrw> list = bisInspGrwDao.findList(bisInspGrwParam);
- if (list == null || list.size() == 0) {
- ret = bisInspGrwDao.insert(b);
- }
- return ret;
- }
- @Override
- public void insertObj(BisInspAllObj bisInspAllObj, String persId) {
- AttGrwBase attGrwBase = this.bisInspBaseDao.getGroundWaterByCode(bisInspAllObj.getCode());
- BisInspGrw b = new BisInspGrw();
- b.setId(UuidUtil.uuid());
- b.setObjId(bisInspAllObj.getObjId());
- b.setStcd(bisInspAllObj.getCode());
- b.setStnm(bisInspAllObj.getNm());
- b.setSttp(attGrwBase.getSttp());
- b.setStlc(attGrwBase.getStlc());
- Date d = new Date();
- SimpleDateFormat df = new SimpleDateFormat(SplitValue.TIME_SPLIT_SEC);//设置日期格式
- String format = df.format(d);
- b.setInTm(format);
- b.setUpTm(format);
- b.setFlagValid("1");
- b.setInspState(CommonLabel.INIT_DATA);
- bisInspGrwDao.insert(b);
- }
- @Override
- public String getType() {
- return BisInspEnum.GRW.getValue();
- }
- @Override
- public void cleanObjData(String objId) {
- BisInspFscRgstrParam bisInspFscRgstrParam = new BisInspFscRgstrParam();
- bisInspFscRgstrParam.setObjId(objId);
- List<BisInspFscRgstr> list = bisInspFscRgstrDao.findList(bisInspFscRgstrParam);
- if (list.size() > 0) {
- String id = list.get(0).getId();
- BisInspPblmParam bisInspPblmParam = new BisInspPblmParam();
- bisInspPblmParam.setRegid(id);
- bisInspPblmParam.setObjType(BisInspEnum.FSC.getValue());
- this.bisInspPblmDao.deleteBy(bisInspPblmParam);
- BisInspFscRgstr rgstr = bisInspFscRgstrDao.get(id);
- bisInspFscRgstrDao.delete(id);
- if (rgstr != null) {
- //删除督查对象
- BisInspAllObjParam bisInspAllObjParam = new BisInspAllObjParam();
- bisInspAllObjParam.setObjId(objId);
- this.bisInspAllObjDao.deleteBy(bisInspAllObjParam);
- }
- }
- }
- @Override
- public PageInfo findObjPageByType(TypeParam typeParam, HttpServletResponse response) {
- try {
- return findPageByType(typeParam);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return null;
- }
- @Override
- public Object findObjListByType(TypeParam typeParam) {
- if (StringUtils.isNotBlank(typeParam.getAdCode())) {
- typeParam.setAdCode(String.valueOf(AdLevelUtil.SubAd(typeParam.getAdCode()).get(SplitValue.SUBAD)));
- }
- List<BisInspGrwListDto> list = bisInspGrwDao.findPageByType(typeParam);
- return list;
- }
- }
|