package cn.com.goldenwater.dcproj.service.impl; import cn.com.goldenwater.core.service.AbstractCrudService; import cn.com.goldenwater.dcproj.constValue.SplitValue; import cn.com.goldenwater.dcproj.dao.AttXjcwsBaseDao; import cn.com.goldenwater.dcproj.dao.BisInspXjvillRunDao; import cn.com.goldenwater.dcproj.model.AttAdBase; import cn.com.goldenwater.dcproj.model.AttXjcwsBase; import cn.com.goldenwater.dcproj.model.BisInspXjvill; import cn.com.goldenwater.dcproj.model.BisInspXjvillRun; import cn.com.goldenwater.dcproj.param.BisInspXjvillRunParam; import cn.com.goldenwater.dcproj.param.CwsParam; import cn.com.goldenwater.dcproj.service.AttAdBaseService; import cn.com.goldenwater.dcproj.service.BisInspXjvillRunService; import cn.com.goldenwater.dcproj.service.BisInspXjvillService; import cn.com.goldenwater.dcproj.util.CheckUtil; import cn.com.goldenwater.dcproj.utils.Builder; import cn.com.goldenwater.dcproj.utils.Constant; import cn.com.goldenwater.id.util.UuidUtil; import cn.com.goldenwater.util.common.InspPblmUtils; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; 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 java.util.Date; import java.util.List; import java.util.Optional; import static cn.com.goldenwater.dcproj.util.CheckUtil.check; import static cn.com.goldenwater.dcproj.util.CheckUtil.notNull; /** * @author lhc * @date 2021-9-9 */ @Service @Transactional public class BisInspXjvillRunServiceImpl extends AbstractCrudService implements BisInspXjvillRunService { @Autowired private BisInspXjvillRunDao bisInspXjvillRunDao; @Autowired private AttXjcwsBaseDao attXjcwsBaseDao; @Autowired private AttAdBaseService attAdBaseService; @Autowired private BisInspXjvillService bisInspXjvillService; public BisInspXjvillRunServiceImpl(BisInspXjvillRunDao bisInspXjvillRunDao) { super(bisInspXjvillRunDao); this.bisInspXjvillRunDao = bisInspXjvillRunDao; } @Override public int insert(BisInspXjvillRun bisInspXjvillRun) { CheckUtil.notNull(bisInspXjvillRun.getRgstrId(), "rgstrId.no!"); String uuid = UuidUtil.uuid(); // 生成uuid bisInspXjvillRun.setId(uuid); bisInspXjvillRun.setIntm(new Date()); bisInspXjvillRun.setUptm(new Date()); bisInspXjvillRun.setDataStat("0"); return this.bisInspXjvillRunDao.insert(bisInspXjvillRun); } @Override public int update(BisInspXjvillRun bisInspXjvillRun) { bisInspXjvillRun.setUptm(new Date()); return this.bisInspXjvillRunDao.update(bisInspXjvillRun); } @Override public int delete(String id) { return this.bisInspXjvillRunDao.delete(id); } @Override public PageInfo pageNotDC(BisInspXjvillRunParam bisInspXjvillRunParam) { CheckUtil.notNull(bisInspXjvillRunParam.getRgstrId(), "rgstrId.no"); if (StringUtils.isNotBlank(bisInspXjvillRunParam.getAdCode())) { bisInspXjvillRunParam.setAdCode(InspPblmUtils.getAddVCD(bisInspXjvillRunParam.getAdCode())); } else { BisInspXjvill bisInspXjvill = bisInspXjvillService.get(bisInspXjvillRunParam.getRgstrId()); Optional.ofNullable(bisInspXjvill).map(BisInspXjvill::getAdCode).ifPresent(adCode -> { bisInspXjvillRunParam.setAdCode(InspPblmUtils.getAddVCD(adCode)); }); } PageHelper.startPage(bisInspXjvillRunParam.getPageNum(), bisInspXjvillRunParam.getPageSize()); List bisInspBaseDtos = attXjcwsBaseDao.queryListByRegstrIdNotDC(bisInspXjvillRunParam); return new PageInfo<>(bisInspBaseDtos); } @Override public void addBatch(CwsParam cwsParam) { check(StringUtils.isNotBlank(cwsParam.getCwsIds()), "cwsIds.no"); notNull(cwsParam.getRegstrId(), "regstrId.no"); String[] cwsIdArray; if (cwsParam.getCwsIds().contains(SplitValue.FENHAO_SPLIT)) { cwsIdArray = cwsParam.getCwsIds().split(SplitValue.FENHAO_SPLIT); } else { cwsIdArray = cwsParam.getCwsIds().split(SplitValue.DOUHAO_SPLIT); } for (String cwsId : cwsIdArray) { AttXjcwsBase base = attXjcwsBaseDao.get(cwsId); if (base == null) { continue; } BisInspXjvillRun fee = Builder.of(BisInspXjvillRun::new) .with(BisInspXjvillRun::setRgstrId, cwsParam.getRegstrId()) .with(BisInspXjvillRun::setAdCode, cwsParam.getAdCode()) .build(); if (StringUtils.isNotBlank(cwsParam.getAdCode())) { AttAdBase attAdBase = attAdBaseService.get(cwsParam.getAdCode()); Optional.ofNullable(attAdBase).ifPresent(b -> { fee.setAdCode(b.getAdCode()); fee.setLoc(b.getAdFullName()); fee.setAdName(b.getAdName()); }); } BeanUtils.copyProperties(base, fee); fee.setCwsId(base.getId()); fee.setRegmId(cwsParam.getRegmId()); fee.setRgstrId(cwsParam.getRegstrId()); insert(fee); } updateRgstrState(cwsParam.getRegstrId()); } @Override public int selectCount(BisInspXjvillRun bisInspXjvillRun) { return bisInspXjvillRunDao.selectCount(bisInspXjvillRun); } void updateRgstrState(String rgstrId) { BisInspXjvill rgstr = bisInspXjvillService.get(rgstrId); Optional.ofNullable(rgstr).ifPresent(r -> { if (!Constant.STRING_TWO.equals(r.getState()) && !Constant.STRING_ONE.equals(r.getState())) { r.setUptm(new Date()); r.setState(Constant.STRING_ONE); // 更新登记表状态 bisInspXjvillService.update(r); } }); } }