| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538 |
- package cn.com.goldenwater.dcproj.service.impl;
- import cn.com.goldenwater.core.service.AbstractCrudService;
- import cn.com.goldenwater.dcproj.constValue.BisInspEnum;
- import cn.com.goldenwater.dcproj.constValue.RsvrEnum;
- import cn.com.goldenwater.dcproj.constValue.SplitValue;
- import cn.com.goldenwater.dcproj.constValue.StateEnum;
- import cn.com.goldenwater.dcproj.dao.AttRsBaseDao;
- import cn.com.goldenwater.dcproj.dao.BisInspPblmDao;
- import cn.com.goldenwater.dcproj.dao.BisInspRsvrynRgstrDao;
- import cn.com.goldenwater.dcproj.dao.GwComFileDao;
- import cn.com.goldenwater.dcproj.dto.BisInspRsvrynRgstrData;
- import cn.com.goldenwater.dcproj.dto.BisInspRsvrynRgstrDto;
- import cn.com.goldenwater.dcproj.dto.BisInspRsvrynRgstrPcDto;
- import cn.com.goldenwater.dcproj.dto.BisInspTaskTotal;
- import cn.com.goldenwater.dcproj.model.*;
- import cn.com.goldenwater.dcproj.param.*;
- import cn.com.goldenwater.dcproj.service.*;
- import cn.com.goldenwater.dcproj.utils.AdLevelUtil;
- import cn.com.goldenwater.dcproj.utils.Builder;
- import cn.com.goldenwater.dcproj.utils.DateUtils;
- import cn.com.goldenwater.id.util.UuidUtil;
- import com.github.pagehelper.PageHelper;
- import com.github.pagehelper.PageInfo;
- import org.apache.commons.collections.CollectionUtils;
- import org.apache.commons.lang3.StringUtils;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.BeanUtils;
- 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.*;
- /**
- * @author lune
- * @date 2019-2-18
- */
- @Service
- @Transactional(rollbackFor = Exception.class)
- public class BisInspRsvrynRgstrServiceImpl extends AbstractCrudService<BisInspRsvrynRgstr, BisInspRsvrynRgstrParam>
- implements BisInspRsvrynRgstrService, BisInspObjStrategy {
- private Logger logger = LoggerFactory.getLogger(getClass());
- @Autowired
- private BisInspRsvrynRgstrDao bisInspRsvrynRgstrDao;
- @Autowired
- private AttRsBaseDao attRsBaseDao;
- @Autowired
- private BisInspPblmDao bisInspPblmDao;
- @Autowired
- private GwComFileDao comFileDao;
- @Autowired
- private BisInspRsvrynPblmMendService bisInspRsvrynPblmMendService;
- @Autowired
- private BisInspRsvrynRgstrChkInfoService bisInspRsvrynRgstrChkInfoService;
- @Autowired
- private BisInspPblmService bisInspPblmService;
- public BisInspRsvrynRgstrServiceImpl(BisInspRsvrynRgstrDao bisInspRsvrynRgstrDao) {
- super(bisInspRsvrynRgstrDao);
- this.bisInspRsvrynRgstrDao = bisInspRsvrynRgstrDao;
- }
- @Override
- public int update(BisInspRsvrynRgstr entity) {
- entity.setUptm(new Date());
- int ret = super.update(entity);
- updatePblmState(entity);
- return ret;
- }
- private void updatePblmState(BisInspRsvrynRgstr rgstr) {
- BisInspRsvrynRgstr r = get(rgstr.getRgstrId());
- if (r == null) {
- return;
- }
- logger.info("BisInspRsvrynRgstr:" + r.toString());
- bisInspPblmService.updateStateByObjId(r.getObjId(), rgstr.getState());
- }
- @Override
- public BisInspRsvrynRgstr getBy(BisInspRsvrynRgstrParam param) {
- BisInspRsvrynRgstr rgstr = super.getBy(param);
- if (rgstr == null) {
- return rgstr;
- }
- rgstr.setRegCode(rgstr.getDamRegCode());
- rgstr.setCenterX(rgstr.getRsvrLong() == null ? "" : String.valueOf(rgstr.getRsvrLong()));
- rgstr.setCenterY(rgstr.getRsvrLat() == null ? "" : String.valueOf(rgstr.getRsvrLat()));
- if (!"2".equals(rgstr.getRectStat())) {
- checkFinished(rgstr);
- }
- return rgstr;
- }
- @Override
- public BisInspRsvrynRgstr get(String key) {
- BisInspRsvrynRgstr rgstr = super.get(key);
- if (rgstr == null) {
- return rgstr;
- }
- rgstr.setRegCode(rgstr.getDamRegCode());
- rgstr.setCenterX(rgstr.getRsvrLong() == null ? "" : String.valueOf(rgstr.getRsvrLong()));
- rgstr.setCenterY(rgstr.getRsvrLat() == null ? "" : String.valueOf(rgstr.getRsvrLat()));
- if (!"2".equals(rgstr.getRectStat())) {
- checkFinished(rgstr);
- }
- return rgstr;
- }
- /**
- * 更新整改问题状态
- * 判断问题是否全部整改
- *
- * @param rgstr
- */
- private void checkFinished(BisInspRsvrynRgstr rgstr) {
- String rectStat = "0";
- List<BisInspRsvrynPblmMend> pblmMendList = bisInspRsvrynPblmMendService.findList(Builder.of(BisInspRsvrynPblmMendParam::new).with(BisInspRsvrynPblmMendParam::setRsCode, rgstr.getRsCode()).build());
- if (pblmMendList == null || pblmMendList.size() == 0) {
- rectStat = "2";
- } else {
- long total = pblmMendList.size();
- long revw = pblmMendList.stream().filter(p -> "2".equals(p.getRevwState())).count();
- if (total == revw) {
- rectStat = "2";
- } else if (total > revw && revw != 0) {
- rectStat = "1";
- }
- }
- if (!rectStat.equals(rgstr.getRectStat())) {
- rgstr.setRectStat(rectStat);
- bisInspRsvrynRgstrDao.update(rgstr);
- }
- }
- @Override
- public void insertObj(BisInspAllObj bisInspAllObj, String persId) {
- AttRsBaseParam baseParam = new AttRsBaseParam();
- baseParam.setRsCode(bisInspAllObj.getCode());
- AttRsBase attRsBase = attRsBaseDao.getBy(baseParam);
- BisInspRsvrynRgstr b = new BisInspRsvrynRgstr();
- BeanUtils.copyProperties(attRsBase, b);
- String registrId = UUID.randomUUID().toString().replace(SplitValue.HENG_SPLIT, "");
- b.setRgstrId(registrId);
- b.setObjId(bisInspAllObj.getObjId());
- b.setRsCode(attRsBase.getRsCode());
- b.setRsvrNm(bisInspAllObj.getNm());
- b.setAdCode(attRsBase.getAdmDiv());
- b.setOrgId(bisInspAllObj.getOrgId());
- b.setRsvrAdmName(attRsBase.getRsAdmName());
- if (attRsBase.getDamSizeHig() == null) {
- b.setDamMaxHigh(null);
- } else {
- b.setDamMaxHigh(Double.toString(attRsBase.getDamSizeHig()));
- }
- b.setEngScal(attRsBase.getEngScal());
- if (StringUtils.isNotBlank(attRsBase.getLocation())) {
- b.setHystSite(attRsBase.getLocation());
- } else {
- b.setHystSite(attRsBase.getRsLoc());
- }
- if (attRsBase.getCenterYGd() != null) {
- b.setRsvrLat(Double.parseDouble(attRsBase.getCenterYGd()));
- }
- if (attRsBase.getCenterXGd() != null) {
- b.setRsvrLong(Double.parseDouble(attRsBase.getCenterXGd()));
- }
- b.setResCreateTime(attRsBase.getCompDate());
- b.setHystSite(attRsBase.getRsLoc());
- b.setTotCap(attRsBase.getTotCap());
- b.setLocation(attRsBase.getLocation());
- b.setDamRegCode(attRsBase.getRegCode());
- b.setDamType(attRsBase.getDamType());
- b.setHasDamRegCode("1");
- b.setState(StateEnum.NOWASTSTATE.getKey());
- b.setCompDateStr(attRsBase.getCompDateStr());
- b.setPresStat(StateEnum.NOWASTSTATE.getKey());
- b.setBaseStat(StateEnum.NOWASTSTATE.getKey());
- b.setResRunStat(StateEnum.NOWASTSTATE.getKey());
- b.setViewStat(StateEnum.NOWASTSTATE.getKey());
- b.setDataStat(StateEnum.NOWASTSTATE.getKey());
- b.setSafeStat(StateEnum.NOWASTSTATE.getKey());
- Date date = new Date();
- b.setIntm(date);
- b.setUptm(date);
- bisInspRsvrynRgstrDao.insert(b);
- // TODO 导入去年的复查数据
- //1. 获取去年问题数据
- //2. 转换成复查数据,并保存
- Calendar c = Calendar.getInstance();
- c.setTime(new Date());
- c.add(Calendar.YEAR, -1);
- Date lastYearDate = c.getTime();
- String lastYear = DateUtils.Date2Str(lastYearDate, "yyyy");
- List<BisInspPblm> pblmList = bisInspPblmDao.findList(Builder.of(BisInspPblmParam::new)
- .with(BisInspPblmParam::setYear, lastYear)
- .with(BisInspPblmParam::setObjType, "1")
- .with(BisInspPblmParam::setObjCode, attRsBase.getRsCode())
- .build());
- if (CollectionUtils.isEmpty(pblmList)) {
- return;
- }
- pblmList.forEach(pblm -> {
- BisInspRsvrynPblmMend pblmMend = new BisInspRsvrynPblmMend();
- pblmMend.pblmConvert(pblm);
- pblmMend.setId(UuidUtil.uuid());
- pblmMend.setYear(DateUtils.getToday("yyyy"));
- pblmMend.setRgstrId(b.getRgstrId());
- pblmMend.setDamRegCode(attRsBase.getRegCode());
- pblmMend.setEngScal(attRsBase.getEngScal());
- pblmMend.setSafeComment(attRsBase.getWcEvltOld());
- pblmMend.setUnit(attRsBase.getRsAdmName());
- bisInspRsvrynPblmMendService.insert(pblmMend);
- });
- }
- @Override
- public String getType() {
- return BisInspEnum.RSVRYN.getValue();
- }
- @Override
- public void cleanObjData(String objId) {
- BisInspRsvrynRgstrParam bisInspRsvrynRgstrParam = new BisInspRsvrynRgstrParam();
- bisInspRsvrynRgstrParam.setObjId(objId);
- List<BisInspRsvrynRgstr> list = this.bisInspRsvrynRgstrDao.findList(bisInspRsvrynRgstrParam);
- if (list.size() > 0) {
- String id = list.get(0).getRgstrId();
- bisInspRsvrynPblmMendService.deleteBy(Builder.of(BisInspRsvrynPblmMendParam::new)
- .with(BisInspRsvrynPblmMendParam::setRgstrId, id)
- .build());
- bisInspRsvrynRgstrChkInfoService.deleteBy(Builder.of(BisInspRsvrynRgstrChkInfoParam::new)
- .with(BisInspRsvrynRgstrChkInfoParam::setRgstrId, id)
- .build());
- this.bisInspRsvrynRgstrDao.delete(id);//删除水库登记表
- }
- }
- @Override
- public PageInfo findObjPageByType(TypeParam typeParam, HttpServletResponse response) {
- return this.findPageByType(typeParam);
- }
- @Override
- public Object findObjListByType(TypeParam typeParam) {
- return this.findListByType(typeParam);
- }
- @Override
- public BisInspRsvrynRgstr createCheckData(BisInspRsvrynRgstr rsvrRgstr, String flag, String currentPersId) {
- String regstrId = rsvrRgstr.getRgstrId();
- String regstrId_flag = regstrId + "_" + flag;
- BisInspPblmParam pblmParam = new BisInspPblmParam();
- pblmParam.setRegid(regstrId);
- List<BisInspPblm> pblmList = bisInspPblmDao.findList(pblmParam);
- if (pblmList != null && !pblmList.isEmpty()) {
- for (BisInspPblm inspPblm : pblmList) {
- List<GwComFile> comFiles = comFileDao.findFileByBiz(inspPblm.getPblmId());
- String pblmId = UuidUtil.uuid();
- inspPblm.setPblmId(pblmId);
- inspPblm.setDataStat(flag);
- inspPblm.setRegid(regstrId_flag);
- if (comFiles != null && !comFiles.isEmpty()) {
- for (GwComFile comFile : comFiles) {
- comFile.setBizId(pblmId);
- comFile.setId(UuidUtil.uuid());
- comFileDao.insert(comFile);
- }
- }
- bisInspPblmDao.insert(inspPblm);
- }
- }
- rsvrRgstr.setState(flag);
- return rsvrRgstr;
- }
- /**
- * 根据行政 开始时间和结束时间统计小水库 督查对象的列表数据
- *
- * @param adCode
- * @param stTm
- * @param enTm
- * @return
- */
- @Override
- public BisInspTaskTotal getListByTm(String adCode, Date stTm, Date enTm) {
- return bisInspRsvrynRgstrDao.getListByTm(adCode, stTm, enTm);
- }
- @Override
- public void updateRsvr(String rgstrId, String status, String input) {
- if (StringUtils.isBlank(rgstrId)) {
- return;
- }
- BisInspRsvrynRgstr inspRsvrRgstr = bisInspRsvrynRgstrDao.get(rgstrId);
- if (StringUtils.isBlank(status)) {
- status = "2";
- }
- RsvrEnum rsvrEnum = RsvrEnum.getByValue(input);
- if (rsvrEnum == null) {
- return;
- }
- switch (rsvrEnum) {
- case PERSSAFE:
- inspRsvrRgstr.setSafeStat(status);
- break;
- case REIN:
- inspRsvrRgstr.setReinStat(status);
- break;
- case DAM:
- inspRsvrRgstr.setDamStat(status);
- break;
- case FITS:
- inspRsvrRgstr.setBenefitStat(status);
- break;
- case PROJECT:
- inspRsvrRgstr.setReverStat(status);
- break;
- case PRES:
- inspRsvrRgstr.setPresStat(status);
- break;
- case VIEW:
- inspRsvrRgstr.setViewStat("2");
- break;
- case EXT:
- inspRsvrRgstr.setBaseStat(status);
- break;
- case SAFE:
- inspRsvrRgstr.setResRunStat(status);
- break;
- default:
- }
- if (StringUtils.isBlank(inspRsvrRgstr.getState()) ||
- StateEnum.NOWASTSTATE.getKey().equals(inspRsvrRgstr.getState())) {
- inspRsvrRgstr.setState(StateEnum.EXWASTSTATE.getKey());
- } else {
- inspRsvrRgstr.setState(inspRsvrRgstr.getState());
- }
- bisInspRsvrynRgstrDao.update(inspRsvrRgstr);
- }
- @Override
- public int deleteRsvrRgstr(String id) {
- return bisInspRsvrynRgstrDao.deleteInFlag(id);
- }
- @Override
- public int add(BisInspRsvrynRgstrData bisInspRsvrynRgstrData) {
- Date date = new Date();
- BisInspRsvrynRgstr bisInspRsvrynRgstr = bisInspRsvrynRgstrData.getRsvrRgstr();
- bisInspRsvrynRgstr.setState(StateEnum.EXWASTSTATE.getKey());
- bisInspRsvrynRgstr.setDataStat("0");
- bisInspRsvrynRgstr.setUptm(date);
- bisInspRsvrynRgstr.setIntm(date);
- this.insert(bisInspRsvrynRgstr);
- return 1;
- }
- @Override
- public void updateRG(BisInspRsvrynRgstr rsvrRgstr) {
- Date date = new Date();
- //提交督查表,更新问题状态
- BisInspPblm bisInspPblm = new BisInspPblm();
- bisInspPblm.setPblmStat("1");
- bisInspPblm.setRegid(rsvrRgstr.getRgstrId());
- if (StringUtils.isNotBlank(rsvrRgstr.getRgstrId())) {
- bisInspPblmDao.updatePblmStatus(bisInspPblm);
- }
- bisInspRsvrynRgstrDao.update(rsvrRgstr);
- }
- @Override
- public PageInfo<BisInspRsvrynRgstrDto> findPageByType(TypeParam typeParam) {
- if (StringUtils.isNotBlank(typeParam.getCode())) {
- typeParam.setCode(AdLevelUtil.SubAd(typeParam.getCode()).get(SplitValue.SUBAD).toString());
- }
- PageHelper.startPage(typeParam);
- List<BisInspRsvrynRgstrDto> list = bisInspRsvrynRgstrDao.findPageByType(typeParam);
- PageInfo<BisInspRsvrynRgstrDto> pageInfo = new PageInfo(list);
- return pageInfo;
- }
- @Override
- public List<BisInspRsvrynRgstrDto> findListByType(TypeParam typeParam) {
- if (StringUtils.isNotBlank(typeParam.getCode())) {
- typeParam.setCode(AdLevelUtil.SubAd(typeParam.getCode()).get(SplitValue.SUBAD).toString());
- }
- List<BisInspRsvrynRgstrDto> list = bisInspRsvrynRgstrDao.findPageByType(typeParam);
- if (list == null) {
- return new ArrayList<>();
- }
- return list;
- }
- @Override
- public PageInfo<AttRsBase> findAttBaseInfo(AttRsBaseParam attRsBaseParam) {
- PageHelper.startPage(attRsBaseParam);
- List<AttRsBase> list = attRsBaseDao.findList(attRsBaseParam);
- return new PageInfo<>(list);
- }
- @Override
- public PageInfo<BisInspRsvrynRgstrPcDto> findPcPage(TypeParam typeParam) {
- PageHelper.startPage(typeParam);
- List<BisInspRsvrynRgstrPcDto> list = bisInspRsvrynRgstrDao.findPcPage(typeParam);
- if (list.size() > 0) {
- for (BisInspRsvrynRgstrPcDto b : list) {
- if (b.getAdFullName() != null) {
- if (b.getAdFullName().contains(SplitValue.HENG_SPLIT)) {
- String[] split = b.getAdFullName().split(SplitValue.HENG_SPLIT);
- if (split.length == 3) {
- b.setProvince(split[0]);
- b.setCity(split[1]);
- b.setCounty(split[2]);
- }
- if (split.length == 2) {
- b.setProvince(split[0]);
- b.setCity(split[1]);
- b.setCounty("");
- }
- } else {
- b.setProvince(b.getAdFullName());
- }
- }
- }
- }
- return new PageInfo<>(list);
- }
- @Override
- public BisInspRsvrynRgstr getByRsvrRgstr(BisInspRsvrynRgstrParam inspRsvrRgstrParam) {
- String state = StateEnum.NOWASTSTATE.getKey();
- String persId = inspRsvrRgstrParam.getRecPersId();
- inspRsvrRgstrParam.setRecPersId("");
- BisInspRsvrynRgstr bisInspRsvrynRgstr = bisInspRsvrynRgstrDao.getBy(inspRsvrRgstrParam);
- if (bisInspRsvrynRgstr != null) {
- if (bisInspRsvrynRgstr.getIntm() == null) {
- bisInspRsvrynRgstr.setIntm(new Date());
- bisInspRsvrynRgstrDao.update(bisInspRsvrynRgstr);
- }
- return bisInspRsvrynRgstr;
- }
- bisInspRsvrynRgstr = new BisInspRsvrynRgstr();
- AttRsBaseParam baseParam = new AttRsBaseParam();
- baseParam.setRsCode(inspRsvrRgstrParam.getRsCode());
- AttRsBase attRsBase = attRsBaseDao.getBy(baseParam);
- if (attRsBase == null) {
- return new BisInspRsvrynRgstr();
- }
- bisInspRsvrynRgstr.setRgstrId(UuidUtil.uuid());
- bisInspRsvrynRgstr.setAdCode(attRsBase.getAdmDiv());
- bisInspRsvrynRgstr.setRsvrAdmName(attRsBase.getRsAdmName());
- if (attRsBase.getDamSizeHig() == null) {
- bisInspRsvrynRgstr.setDamMaxHigh(null);
- } else {
- bisInspRsvrynRgstr.setDamMaxHigh(Double.toString(attRsBase.getDamSizeHig()));
- }
- bisInspRsvrynRgstr.setDamType(attRsBase.getDamType());
- bisInspRsvrynRgstr.setDamRegCode(attRsBase.getRegCode());
- bisInspRsvrynRgstr.setEngScal(attRsBase.getEngScal());
- bisInspRsvrynRgstr.setObjId(inspRsvrRgstrParam.getObjId());
- bisInspRsvrynRgstr.setHystSite(attRsBase.getRsLoc());
- bisInspRsvrynRgstr.setLocation(attRsBase.getLocation());
- bisInspRsvrynRgstr.setState(state);
- bisInspRsvrynRgstr.setRsCode(inspRsvrRgstrParam.getRsCode());
- bisInspRsvrynRgstr.setTotCap(attRsBase.getTotCap());
- if (attRsBase.getCenterYGd() != null) {
- bisInspRsvrynRgstr.setRsvrLat(Double.parseDouble(attRsBase.getCenterYGd()));
- }
- if (attRsBase.getCenterXGd() != null) {
- bisInspRsvrynRgstr.setRsvrLong(Double.parseDouble(attRsBase.getCenterXGd()));
- }
- bisInspRsvrynRgstr.setDataStat(state);
- Date date = new Date();
- bisInspRsvrynRgstr.setIntm(date);
- bisInspRsvrynRgstr.setUptm(date);
- bisInspRsvrynRgstr.setPresStat(state);
- bisInspRsvrynRgstr.setRecPersId(persId);
- bisInspRsvrynRgstr.setResCreateTime(attRsBase.getCompDate());
- bisInspRsvrynRgstr.setHasDamRegCode("1");
- bisInspRsvrynRgstr.setCompDateStr(attRsBase.getCompDateStr());
- bisInspRsvrynRgstr.setViewStat(state);
- bisInspRsvrynRgstr.setRsvrNm(attRsBase.getRsName());
- bisInspRsvrynRgstr.setBaseStat(state);
- bisInspRsvrynRgstr.setReverStat(state);
- bisInspRsvrynRgstr.setResRunStat(state);
- bisInspRsvrynRgstr.setIsSaf(attRsBase.getIsSaf());
- bisInspRsvrynRgstr.setIsAction(attRsBase.getIsAction());
- bisInspRsvrynRgstr.setInspType(attRsBase.getInspType());
- this.insert(bisInspRsvrynRgstr);
- return bisInspRsvrynRgstr;
- }
- @Override
- public int insert(BisInspRsvrynRgstr b) {
- int ret = 1;
- String objId = b.getObjId();
- BisInspRsvrynRgstrParam bisInspRsvrynRgstrParam = new BisInspRsvrynRgstrParam();
- bisInspRsvrynRgstrParam.setObjId(objId);
- List<BisInspRsvrynRgstr> list = bisInspRsvrynRgstrDao.findList(bisInspRsvrynRgstrParam);
- if (list == null || list.size() == 0) {
- ret = bisInspRsvrynRgstrDao.insert(b);
- }
- return ret;
- }
- }
|