package cn.com.goldenwater.dcproj.service.impl.rsvrsd; import cn.com.goldenwater.dcproj.constValue.BisInspEnum; import cn.com.goldenwater.dcproj.constValue.SplitValue; import cn.com.goldenwater.dcproj.dao.AttRsBaseDao; import cn.com.goldenwater.dcproj.dao.BisInspRsvrSdDao; import cn.com.goldenwater.dcproj.dto.BisInspChmclsRgstrDto; import cn.com.goldenwater.dcproj.dto.BisInspRsvrSdDto; import cn.com.goldenwater.dcproj.model.*; import cn.com.goldenwater.dcproj.param.*; import cn.com.goldenwater.dcproj.service.*; import cn.com.goldenwater.core.service.AbstractCrudService; import cn.com.goldenwater.dcproj.utils.AdLevelUtil; import cn.com.goldenwater.dcproj.utils.Builder; import cn.com.goldenwater.dcproj.utils.Constant; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.github.pagehelper.util.StringUtil; import com.itextpdf.awt.geom.Rectangle2D; import org.apache.commons.collections.MapUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import cn.com.goldenwater.id.util.UuidUtil; import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.Date; import java.util.Map; /** * @author lhc * @date 2022-3-14 */ @Service @Transactional public class BisInspRsvrSdServiceImpl extends AbstractCrudService implements BisInspRsvrSdService, BisInspObjStrategy { @Autowired private BisInspRsvrSdDao bisInspRsvrSdDao; @Autowired private AttRsBaseService attRsBaseService; @Autowired private BisInspRsvrSdBldnService bisInspRsvrSdBldnService; @Autowired private BisInspRsvrSdDutyService bisInspRsvrSdDutyService; @Autowired private BisInspRsvrSdFcltyService bisInspRsvrSdFcltyService; @Autowired private BisInspRsvrSdFcsService bisInspRsvrSdFcsService; @Autowired private BisInspRsvrSdRprService bisInspRsvrSdRprService; @Autowired private BisInspRsvrSdSynService bisInspRsvrSdSynService; @Autowired private AttRsBaseDao attRsBaseDao; @Autowired private AttAdBaseService attAdBaseService; @Autowired private BisInspAllObjService bisInspAllObjService; public BisInspRsvrSdServiceImpl(BisInspRsvrSdDao bisInspRsvrSdDao) { super(bisInspRsvrSdDao); this.bisInspRsvrSdDao = bisInspRsvrSdDao; } @Override public int insert(BisInspRsvrSd bisInspRsvrSd) { String uuid = UuidUtil.uuid(); // 生成uuid bisInspRsvrSd.setId(uuid); bisInspRsvrSd.setIntm(new Date()); bisInspRsvrSd.setUptm(new Date()); bisInspRsvrSd.setDataStat("0"); if (StringUtils.isNotBlank(bisInspRsvrSd.getAdCode())) { bisInspRsvrSd.setAdFullName(attAdBaseService.getByAdcode(bisInspRsvrSd.getAdCode()).getAdFullName()); } bisInspRsvrSdBldnService.insert(Builder.of(BisInspRsvrSdBldn::new).with(BisInspRsvrSdBldn::setRgstrId, uuid).build()); bisInspRsvrSdDutyService.insert(Builder.of(BisInspRsvrSdDuty::new).with(BisInspRsvrSdDuty::setRgstrId, uuid).build()); bisInspRsvrSdFcltyService.insert(Builder.of(BisInspRsvrSdFclty::new).with(BisInspRsvrSdFclty::setRgstrId, uuid).build()); bisInspRsvrSdFcsService.insert(Builder.of(BisInspRsvrSdFcs::new).with(BisInspRsvrSdFcs::setRgstrId, uuid).build()); bisInspRsvrSdRprService.insert(Builder.of(BisInspRsvrSdRpr::new).with(BisInspRsvrSdRpr::setRgstrId, uuid).build()); bisInspRsvrSdSynService.insert(Builder.of(BisInspRsvrSdSyn::new).with(BisInspRsvrSdSyn::setRgstrId, uuid).build()); return this.bisInspRsvrSdDao.insert(bisInspRsvrSd); } @Override public int update(BisInspRsvrSd bisInspRsvrSd) { if (StringUtils.isBlank(bisInspRsvrSd.getRgstrId())) { bisInspRsvrSd.setUptm(new Date()); AttRsBase attRsBase = new AttRsBase(); attRsBase.setRsCode(bisInspRsvrSd.getRsCode()); attRsBase.setRsName(bisInspRsvrSd.getRsvrNm()); attRsBase.setAdFullName(bisInspRsvrSd.getHystSite()); attRsBase.setAdmDiv(bisInspRsvrSd.getAdCode()); attRsBase.setLocation(bisInspRsvrSd.getHystSite()); attRsBase.setCompDate(bisInspRsvrSd.getResCreateTime()); attRsBase.setEngScal(bisInspRsvrSd.getEngScal()); attRsBase.setTotCap(bisInspRsvrSd.getTotCap()); attRsBase.setRegCode(bisInspRsvrSd.getDamRegCode()); attRsBase.setCenterXGd(bisInspRsvrSd.getGdX() == null ? "" : bisInspRsvrSd.getGdX().toString()); attRsBase.setCenterYGd(bisInspRsvrSd.getGdY() == null ? "" : bisInspRsvrSd.getGdY().toString()); attRsBase.setCenterX(bisInspRsvrSd.getGdX() == null ? "" : bisInspRsvrSd.getGdX().toString()); attRsBase.setCenterY(bisInspRsvrSd.getGdY() == null ? "" : bisInspRsvrSd.getGdY().toString()); if (StringUtils.isNotBlank(bisInspRsvrSd.getAdCode())) { bisInspRsvrSd.setAdFullName(attAdBaseService.getByAdcode(bisInspRsvrSd.getAdCode()).getAdFullName()); } attRsBaseService.update(attRsBase); //更新任务表 if (StringUtil.isNotEmpty(bisInspRsvrSd.getRsCode())) { BisInspAllObj bisInspAllObj = new BisInspAllObj(); bisInspAllObj.setCode(bisInspRsvrSd.getRsCode()); bisInspAllObj.setObjId(bisInspRsvrSd.getObjId()); bisInspAllObj.setNm(bisInspRsvrSd.getRsvrNm()); bisInspAllObj.setObjAdCode(bisInspRsvrSd.getAdCode()); bisInspAllObjService.update(bisInspAllObj); } } return this.bisInspRsvrSdDao.update(bisInspRsvrSd); } @Override public int delete(String id) { return this.bisInspRsvrSdDao.delete(id); } @Override public void insertObj(BisInspAllObj bisInspAllObj, String persId) { BisInspRsvrSd b = new BisInspRsvrSd(); AttRsBase base = attRsBaseDao.get(bisInspAllObj.getCode()); BeanUtils.copyProperties(base, b); b.setObjId(bisInspAllObj.getObjId()); b.setRsvrNm(base.getRsName()); b.setAdCode(base.getAdmDiv()); if (StringUtils.isNotBlank(base.getAdmDiv())) { base.setAdFullName(attAdBaseService.getByAdcode(base.getAdmDiv()).getAdFullName()); } b.setEngScal(base.getEngScal()); b.setHystSite(base.getLocation()); b.setResCreateTime(base.getCompDate()); b.setTotCap(base.getTotCap()); b.setDamRegCode(base.getRegCode()); b.setIntm(new Date()); b.setUptm(new Date()); b.setCenterX(base.getCenterX() == null ? 0 : Double.parseDouble(base.getCenterX())); b.setCenterY(base.getCenterY() == null ? 0 : Double.parseDouble(base.getCenterY())); b.setGdX(base.getCenterXGd() == null ? 0 : Double.parseDouble(base.getCenterXGd())); b.setGdY(base.getCenterYGd() == null ? 0 : Double.parseDouble(base.getCenterYGd())); b.setDutyStat("0"); b.setFcsStat("0"); b.setFcltyStat("0"); b.setRprStat("0"); b.setSynStat("0"); b.setBldnStat("0"); b.setState("0"); b.setRsCode(base.getRsCode()); insert(b); } @Override public String getType() { return BisInspEnum.RSVRSD.getValue(); } @Override public void cleanObjData(String objId) { BisInspRsvrSdParam rgstrParam = new BisInspRsvrSdParam(); rgstrParam.setObjId(objId); List list = this.bisInspRsvrSdDao.findList(rgstrParam); if (list.size() > 0) { String id = list.get(0).getId(); // 删除子表 this.bisInspRsvrSdBldnService.deleteBy(Builder.of(BisInspRsvrSdBldnParam::new).with(BisInspRsvrSdBldnParam::setRgstrId, id).build()); this.bisInspRsvrSdDutyService.deleteBy(Builder.of(BisInspRsvrSdDutyParam::new).with(BisInspRsvrSdDutyParam::setRgstrId, id).build()); this.bisInspRsvrSdFcltyService.deleteBy(Builder.of(BisInspRsvrSdFcltyParam::new).with(BisInspRsvrSdFcltyParam::setRgstrId, id).build()); this.bisInspRsvrSdFcsService.deleteBy(Builder.of(BisInspRsvrSdFcsParam::new).with(BisInspRsvrSdFcsParam::setRgstrId, id).build()); this.bisInspRsvrSdRprService.deleteBy(Builder.of(BisInspRsvrSdRprParam::new).with(BisInspRsvrSdRprParam::setRgstrId, id).build()); this.bisInspRsvrSdSynService.deleteBy(Builder.of(BisInspRsvrSdSynParam::new).with(BisInspRsvrSdSynParam::setRgstrId, id).build()); // 删除登记表 this.bisInspRsvrSdDao.delete(id); } } @Override public PageInfo findObjPageByType(TypeParam typeParam, HttpServletResponse response) { if (StringUtils.isNotBlank(typeParam.getAdCode())) { typeParam.setAdCode(String.valueOf(AdLevelUtil.SubAd(typeParam.getAdCode()).get(SplitValue.SUBAD))); } PageHelper.startPage(typeParam); List list = this.bisInspRsvrSdDao.findPageList(typeParam); if (list != null && list.size() > 0) { list.forEach(rgstrDto -> { if (StringUtils.isNotBlank(rgstrDto.getAdFullName())) { String[] adFullNames = rgstrDto.getAdFullName().split("-"); rgstrDto.setProName(adFullNames[0]); if (adFullNames.length > 1) { rgstrDto.setCityName(adFullNames[1]); } if (adFullNames.length > 2) { rgstrDto.setCountyName(adFullNames[2]); } } }); } return new PageInfo<>(list); } @Override public Object findObjListByType(TypeParam typeParam) { return this.bisInspRsvrSdDao.findPageList(typeParam); } @Override public void updateState(Map map) { BisInspRsvrSd rgstr = get(MapUtils.getString(map, "rgstrId")); if (!Constant.STRING_TWO.equals(rgstr.getState())) { rgstr.setUptm(new Date()); rgstr.setState(Constant.STRING_ONE); if ("bldn".equals(MapUtils.getString(map, "param"))) { if (StringUtils.isBlank(rgstr.getBldnStat()) && !"2".equals(MapUtils.getString(map, "state"))) { map.put("state", "1"); } if (StringUtils.isNotBlank(MapUtils.getString(map, "state"))) { rgstr.setBldnStat(MapUtils.getString(map, "state")); } } if ("duty".equals(MapUtils.getString(map, "param"))) { if (StringUtils.isBlank(rgstr.getDutyStat()) && !"2".equals(MapUtils.getString(map, "state"))) { map.put("state", "1"); } if (StringUtils.isNotBlank(MapUtils.getString(map, "state"))) { rgstr.setDutyStat(MapUtils.getString(map, "state")); } } if ("fclty".equals(MapUtils.getString(map, "param"))) { if (StringUtils.isBlank(rgstr.getFcltyStat()) && !"2".equals(MapUtils.getString(map, "state"))) { map.put("state", "1"); } if (StringUtils.isNotBlank(MapUtils.getString(map, "state"))) { rgstr.setFcltyStat(MapUtils.getString(map, "state")); } } if ("fcs".equals(MapUtils.getString(map, "param"))) { if (StringUtils.isBlank(rgstr.getFcsStat()) && !"2".equals(MapUtils.getString(map, "state"))) { map.put("state", "1"); } if (StringUtils.isNotBlank(MapUtils.getString(map, "state"))) { rgstr.setFcsStat(MapUtils.getString(map, "state")); } } if ("rpr".equals(MapUtils.getString(map, "param"))) { if (StringUtils.isBlank(rgstr.getRprStat()) && !"2".equals(MapUtils.getString(map, "state"))) { map.put("state", "1"); } if (StringUtils.isNotBlank(MapUtils.getString(map, "state"))) { rgstr.setRprStat(MapUtils.getString(map, "state")); } } if ("syn".equals(MapUtils.getString(map, "param"))) { if (StringUtils.isBlank(rgstr.getSynStat()) && !"2".equals(MapUtils.getString(map, "state"))) { map.put("state", "1"); } if (StringUtils.isNotBlank(MapUtils.getString(map, "state"))) { rgstr.setSynStat(MapUtils.getString(map, "state")); } } update(rgstr); } } }