package cn.com.goldenwater.dcproj.service.impl.fjpjmgdp; import cn.com.goldenwater.core.service.AbstractCrudService; import cn.com.goldenwater.dcproj.constValue.BisInspEnum; import cn.com.goldenwater.dcproj.constValue.SplitValue; import cn.com.goldenwater.dcproj.dao.AttFjpjmgdpBaseDao; import cn.com.goldenwater.dcproj.dao.BisInspAllObjDao; import cn.com.goldenwater.dcproj.dao.BisInspFjpjmgdpAmDao; import cn.com.goldenwater.dcproj.dao.BisInspFjpjmgdpCimtDao; import cn.com.goldenwater.dcproj.dao.BisInspFjpjmgdpDao; import cn.com.goldenwater.dcproj.dao.BisInspFjpjmgdpEmDao; import cn.com.goldenwater.dcproj.dao.BisInspFjpjmgdpImgrDao; import cn.com.goldenwater.dcproj.dao.BisInspFjpjmgdpSafdlDao; import cn.com.goldenwater.dcproj.dao.BisInspFjpjmgdpSystemDao; import cn.com.goldenwater.dcproj.dao.BisInspFjpjmgdpTrgtDao; import cn.com.goldenwater.dcproj.dao.BisInspFjpjmgdpTvetDao; import cn.com.goldenwater.dcproj.dto.BisInspFjpjmgdpDto; import cn.com.goldenwater.dcproj.model.AttAdBase; import cn.com.goldenwater.dcproj.model.AttFjpjmgdpBase; import cn.com.goldenwater.dcproj.model.BisInspAllObj; import cn.com.goldenwater.dcproj.model.BisInspFjpjmgdp; import cn.com.goldenwater.dcproj.model.BisInspFjpjmgdpAm; import cn.com.goldenwater.dcproj.model.BisInspFjpjmgdpCimt; import cn.com.goldenwater.dcproj.model.BisInspFjpjmgdpEm; import cn.com.goldenwater.dcproj.model.BisInspFjpjmgdpImgr; import cn.com.goldenwater.dcproj.model.BisInspFjpjmgdpSafdl; import cn.com.goldenwater.dcproj.model.BisInspFjpjmgdpSystem; import cn.com.goldenwater.dcproj.model.BisInspFjpjmgdpTrgt; import cn.com.goldenwater.dcproj.model.BisInspFjpjmgdpTvet; import cn.com.goldenwater.dcproj.param.BisInspAllObjParam; import cn.com.goldenwater.dcproj.param.BisInspFjpjmgdpAmParam; import cn.com.goldenwater.dcproj.param.BisInspFjpjmgdpCimtParam; import cn.com.goldenwater.dcproj.param.BisInspFjpjmgdpEmParam; import cn.com.goldenwater.dcproj.param.BisInspFjpjmgdpImgrParam; import cn.com.goldenwater.dcproj.param.BisInspFjpjmgdpParam; import cn.com.goldenwater.dcproj.param.BisInspFjpjmgdpSafdlParam; import cn.com.goldenwater.dcproj.param.BisInspFjpjmgdpSystemParam; import cn.com.goldenwater.dcproj.param.BisInspFjpjmgdpTrgtParam; import cn.com.goldenwater.dcproj.param.BisInspFjpjmgdpTvetParam; import cn.com.goldenwater.dcproj.param.TypeParam; import cn.com.goldenwater.dcproj.service.AttAdBaseService; import cn.com.goldenwater.dcproj.service.BisInspFjpjmgdpService; import cn.com.goldenwater.dcproj.service.BisInspObjStrategy; import cn.com.goldenwater.dcproj.utils.AdLevelUtil; 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.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.Date; import java.util.List; import java.util.Optional; /** * @author lhc * @date 2023-11-8 */ @Service @Transactional public class BisInspFjpjmgdpServiceImpl extends AbstractCrudService implements BisInspFjpjmgdpService, BisInspObjStrategy { @Autowired private BisInspFjpjmgdpDao bisInspFjpjmgdpDao; @Autowired private AttFjpjmgdpBaseDao attFjpjmgdpBaseDao; @Autowired private BisInspAllObjDao bisInspAllObjDao; @Autowired private BisInspFjpjmgdpTrgtDao bisInspFjpjmgdpTrgtDao; @Autowired private BisInspFjpjmgdpSystemDao bisInspFjpjmgdpSystemDao; @Autowired private BisInspFjpjmgdpTvetDao bisInspFjpjmgdpTvetDao; @Autowired private BisInspFjpjmgdpImgrDao bisInspFjpjmgdpImgrDao; @Autowired private BisInspFjpjmgdpSafdlDao bisInspFjpjmgdpSafdlDao; @Autowired private BisInspFjpjmgdpEmDao bisInspFjpjmgdpEmDao; @Autowired private BisInspFjpjmgdpAmDao bisInspFjpjmgdpAmDao; @Autowired private BisInspFjpjmgdpCimtDao bisInspFjpjmgdpCimtDao; @Autowired private AttAdBaseService attAdBaseService; public BisInspFjpjmgdpServiceImpl(BisInspFjpjmgdpDao bisInspFjpjmgdpDao) { super(bisInspFjpjmgdpDao); this.bisInspFjpjmgdpDao = bisInspFjpjmgdpDao; } @Override public int insert(BisInspFjpjmgdp bisInspFjpjmgdp) { String uuid = UuidUtil.uuid(); // 生成uuid bisInspFjpjmgdp.setId(uuid); bisInspFjpjmgdp.setIntm(new Date()); bisInspFjpjmgdp.setUptm(new Date()); bisInspFjpjmgdp.setDataStat("0"); if(null == bisInspFjpjmgdp.getIsCnfm() ){ bisInspFjpjmgdp.setIsCnfm("1"); } int ret = this.bisInspFjpjmgdpDao.insert(bisInspFjpjmgdp); //8个子表 BisInspFjpjmgdpTrgt param1 = new BisInspFjpjmgdpTrgt(); param1.setId(UuidUtil.uuid()); param1.setRgstrId(uuid); param1.setPersId(bisInspFjpjmgdp.getPersId()); param1.setIntm(new Date()); param1.setUptm(new Date()); param1.setDataStat("0"); bisInspFjpjmgdpTrgtDao.insert(param1); BisInspFjpjmgdpSystem param2 = new BisInspFjpjmgdpSystem(); param2.setId(UuidUtil.uuid()); param2.setRgstrId(uuid); param2.setPersId(bisInspFjpjmgdp.getPersId()); param2.setIntm(new Date()); param2.setUptm(new Date()); param2.setDataStat("0"); bisInspFjpjmgdpSystemDao.insert(param2); BisInspFjpjmgdpTvet param3 = new BisInspFjpjmgdpTvet(); param3.setId(UuidUtil.uuid()); param3.setRgstrId(uuid); param3.setPersId(bisInspFjpjmgdp.getPersId()); param3.setIntm(new Date()); param3.setUptm(new Date()); param3.setDataStat("0"); bisInspFjpjmgdpTvetDao.insert(param3); BisInspFjpjmgdpImgr param4 = new BisInspFjpjmgdpImgr(); param4.setId(UuidUtil.uuid()); param4.setRgstrId(uuid); param4.setPersId(bisInspFjpjmgdp.getPersId()); param4.setIntm(new Date()); param4.setUptm(new Date()); param4.setDataStat("0"); bisInspFjpjmgdpImgrDao.insert(param4); BisInspFjpjmgdpSafdl param5 = new BisInspFjpjmgdpSafdl(); param5.setId(UuidUtil.uuid()); param5.setRgstrId(uuid); param5.setPersId(bisInspFjpjmgdp.getPersId()); param5.setIntm(new Date()); param5.setUptm(new Date()); param5.setDataStat("0"); bisInspFjpjmgdpSafdlDao.insert(param5); BisInspFjpjmgdpEm param6 = new BisInspFjpjmgdpEm(); param6.setId(UuidUtil.uuid()); param6.setRgstrId(uuid); param6.setPersId(bisInspFjpjmgdp.getPersId()); param6.setIntm(new Date()); param6.setUptm(new Date()); param6.setDataStat("0"); bisInspFjpjmgdpEmDao.insert(param6); BisInspFjpjmgdpAm param7 = new BisInspFjpjmgdpAm(); param7.setId(UuidUtil.uuid()); param7.setRgstrId(uuid); param7.setPersId(bisInspFjpjmgdp.getPersId()); param7.setIntm(new Date()); param7.setUptm(new Date()); param7.setDataStat("0"); bisInspFjpjmgdpAmDao.insert(param7); BisInspFjpjmgdpCimt param8 = new BisInspFjpjmgdpCimt(); param8.setId(UuidUtil.uuid()); param8.setRgstrId(uuid); param8.setPersId(bisInspFjpjmgdp.getPersId()); param8.setIntm(new Date()); param8.setUptm(new Date()); param8.setDataStat("0"); bisInspFjpjmgdpCimtDao.insert(param8); return ret; } @Override public int update(BisInspFjpjmgdp bisInspFjpjmgdp) { if(org.apache.commons.lang.StringUtils.isNotBlank(bisInspFjpjmgdp.getObjId())){ updateBase(bisInspFjpjmgdp); } bisInspFjpjmgdp.setUptm(new Date()); return this.bisInspFjpjmgdpDao.update(bisInspFjpjmgdp); } /** * 更新基础表 */ void updateBase(BisInspFjpjmgdp bisInspFjpjmgdp) { AttFjpjmgdpBase base = attFjpjmgdpBaseDao.getObjId(bisInspFjpjmgdp.getObjId()); Optional.ofNullable(base).ifPresent(b -> { String id = b.getId(); BeanUtils.copyProperties(bisInspFjpjmgdp, b); b.setId(id); b.setIntm(null); attFjpjmgdpBaseDao.update(b); }); } @Override public BisInspFjpjmgdp get(String key) { BisInspFjpjmgdp qymten = super.get(key); Optional.ofNullable(qymten).map(BisInspFjpjmgdp::getAdCode).ifPresent(adCode -> { AttAdBase attAdBase = attAdBaseService.get(adCode); Optional.ofNullable(attAdBase).ifPresent(base -> { qymten.setAdName(base.getAdFullName()); }); }); return qymten; } @Override public int delete(String id) { return this.bisInspFjpjmgdpDao.delete(id); } @Override public void insertObj(BisInspAllObj bisInspAllObj, String persId) { AttFjpjmgdpBase attBase = attFjpjmgdpBaseDao.get(bisInspAllObj.getCode()); BisInspFjpjmgdp rgstr = new BisInspFjpjmgdp(); rgstr.setObjId(bisInspAllObj.getObjId()); rgstr.setName(attBase.getName()); rgstr.setAdCode(attBase.getAdCode()); rgstr.setAdName(attBase.getAdName()); rgstr.setBusAddr(attBase.getBusAddr()); rgstr.setConPers(attBase.getConPers()); rgstr.setConPersTel(attBase.getConPersTel()); rgstr.setCenterX(attBase.getCenterX()); rgstr.setCenterY(attBase.getCenterY()); rgstr.setGdX(attBase.getGdX()); rgstr.setGdY(attBase.getGdY()); rgstr.setGroupId(bisInspAllObj.getId()); rgstr.setProvince(bisInspAllObj.getProvince()); rgstr.setPersId(persId); rgstr.setState("0"); rgstr.setIsCnfm(attBase.getIsCnfm()); if(null == rgstr.getIsCnfm() ){ rgstr.setIsCnfm("1"); } insert(rgstr); } @Override public String getType() { return BisInspEnum.FJPJMGDP.getValue(); } @Override public void cleanObjData(String objId) { BisInspFjpjmgdpParam param = new BisInspFjpjmgdpParam(); param.setObjId(objId); List list = bisInspFjpjmgdpDao.findList(param); if (CollectionUtils.isNotEmpty(list)) { String rgstrId = list.get(0).getId(); //删除名录表 BisInspAllObjParam bisInspAllObjParam = new BisInspAllObjParam(); bisInspAllObjParam.setObjId(objId); this.bisInspAllObjDao.deleteBy(bisInspAllObjParam); //登记表 bisInspFjpjmgdpDao.delete(rgstrId); //8个子表 BisInspFjpjmgdpTrgtParam param1 = new BisInspFjpjmgdpTrgtParam(); param1.setRgstrId(rgstrId); bisInspFjpjmgdpTrgtDao.deleteBy(param1); BisInspFjpjmgdpSystemParam param2 = new BisInspFjpjmgdpSystemParam(); param2.setRgstrId(rgstrId); bisInspFjpjmgdpSystemDao.deleteBy(param2); BisInspFjpjmgdpTvetParam param3 = new BisInspFjpjmgdpTvetParam(); param3.setRgstrId(rgstrId); bisInspFjpjmgdpTvetDao.deleteBy(param3); BisInspFjpjmgdpImgrParam param4 = new BisInspFjpjmgdpImgrParam(); param4.setRgstrId(rgstrId); bisInspFjpjmgdpImgrDao.deleteBy(param4); BisInspFjpjmgdpSafdlParam param5 = new BisInspFjpjmgdpSafdlParam(); param5.setRgstrId(rgstrId); bisInspFjpjmgdpSafdlDao.deleteBy(param5); BisInspFjpjmgdpEmParam param6 = new BisInspFjpjmgdpEmParam(); param6.setRgstrId(rgstrId); bisInspFjpjmgdpEmDao.deleteBy(param6); BisInspFjpjmgdpAmParam param7 = new BisInspFjpjmgdpAmParam(); param7.setRgstrId(rgstrId); bisInspFjpjmgdpAmDao.deleteBy(param7); BisInspFjpjmgdpCimtParam param8 = new BisInspFjpjmgdpCimtParam(); param8.setRgstrId(rgstrId); bisInspFjpjmgdpCimtDao.deleteBy(param8); } } @Override public PageInfo findObjPageByType(TypeParam typeParam, HttpServletResponse response) { return this.findQaPage(typeParam); } @Override public Object findObjListByType(TypeParam typeParam) { List list = bisInspFjpjmgdpDao.findFjpjmgdpPage(typeParam); if (list.size() > 0) { for (BisInspFjpjmgdpDto qaDto : list) { String adFullName = qaDto.getAdFullName(); if (StringUtils.isBlank(adFullName)) { continue; } if (adFullName.contains(SplitValue.HENG_SPLIT)) { String[] split = adFullName.split(SplitValue.HENG_SPLIT); if (split.length == 2) { qaDto.setProvince(split[0]); qaDto.setCity(split[1]); } if (split.length == 1) { qaDto.setProvince(split[0]); qaDto.setCity(""); } } else { qaDto.setProvince(adFullName); } } } return list; } @Override public PageInfo findQaPage(TypeParam param) { if (StringUtils.isNotBlank(param.getAdCode())) { param.setAdCode(String.valueOf(AdLevelUtil.SubAd(param.getAdCode()).get(SplitValue.SUBAD))); } if (StringUtils.isNotBlank(param.getAdCodes())) { param.setAdCodes(AdLevelUtil.getListAddvcd(param.getAdCodes())); } PageHelper.startPage(param); List list = bisInspFjpjmgdpDao.findFjpjmgdpPage(param); return new PageInfo<>(list); } @Override public List findPageOfficeList(TypeParam param) { if (StringUtils.isNotBlank(param.getAdCode())) { param.setAdCode(String.valueOf(AdLevelUtil.SubAd(param.getAdCode()).get(SplitValue.SUBAD))); } if (StringUtils.isNotBlank(param.getAdCodes())) { param.setAdCodes(AdLevelUtil.getListAddvcd(param.getAdCodes())); } List list = bisInspFjpjmgdpDao.findPageOfficeList(param); return list; } }