package cn.com.goldenwater.dcproj.service.impl.waga; import cn.com.goldenwater.core.service.AbstractCrudService; import cn.com.goldenwater.dcproj.dao.BisInspWagaPblmDao; import cn.com.goldenwater.dcproj.model.AttWagaRgstr; import cn.com.goldenwater.dcproj.model.BisInspWagaPblm; import cn.com.goldenwater.dcproj.model.GwComFile; import cn.com.goldenwater.dcproj.param.AttWagaRgstrParam; import cn.com.goldenwater.dcproj.param.BisInspWagaPblmParam; import cn.com.goldenwater.dcproj.param.GwComFileParam; import cn.com.goldenwater.dcproj.service.AttWagaRgstrService; import cn.com.goldenwater.dcproj.service.BisInspWagaPblmService; import cn.com.goldenwater.dcproj.service.GwComFileService; import cn.com.goldenwater.dcproj.utils.Builder; import cn.com.goldenwater.id.util.UuidUtil; 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 java.util.Date; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; /** * @author lhc * @date 2021-5-21 */ @Service @Transactional public class BisInspWagaPblmServiceImpl extends AbstractCrudService implements BisInspWagaPblmService { @Autowired private BisInspWagaPblmDao bisInspWagaPblmDao; @Autowired private GwComFileService gwComFileService; @Autowired private AttWagaRgstrService attWagaRgstrService; public BisInspWagaPblmServiceImpl(BisInspWagaPblmDao bisInspWagaPblmDao) { super(bisInspWagaPblmDao); this.bisInspWagaPblmDao = bisInspWagaPblmDao; } @Override public BisInspWagaPblm get(String key) { BisInspWagaPblm pblm = super.get(key); Optional.ofNullable(pblm).ifPresent(p -> { List list = gwComFileService.findList(Builder.of(GwComFileParam::new).with(GwComFileParam::setBizId, p.getId()).build()); p.setGwComFiles(list); }); return pblm; } @Override public int insert(BisInspWagaPblm bisInspWagaPblm) { String uuid = UuidUtil.uuid(); bisInspWagaPblm.setId(uuid); bisInspWagaPblm.setIntm(new Date()); bisInspWagaPblm.setUptm(new Date()); bisInspWagaPblm.setDataStat("0"); List rslkbkRgstrList = attWagaRgstrService.findList(Builder .of(AttWagaRgstrParam::new) .with(AttWagaRgstrParam::setId, bisInspWagaPblm.getRgstrId()) .with(AttWagaRgstrParam::setObjCode, bisInspWagaPblm.getObjCode()) .build()); if (rslkbkRgstrList != null && rslkbkRgstrList.size() > 0) { bisInspWagaPblm.setObjCode(rslkbkRgstrList.get(0).getObjCode()); bisInspWagaPblm.setGateName(rslkbkRgstrList.get(0).getGateName()); bisInspWagaPblm.setAdCode(rslkbkRgstrList.get(0).getAdCode()); bisInspWagaPblm.setEngScal(rslkbkRgstrList.get(0).getEngScal()); rslkbkRgstrList.forEach(this::updateRgtsr); } if (StringUtils.isNotBlank(bisInspWagaPblm.getRevwRectConc())) { bisInspWagaPblm.setRevwState("2"); } int ret = this.bisInspWagaPblmDao.insert(bisInspWagaPblm); updateFiles(bisInspWagaPblm); AttWagaRgstr rgstr = attWagaRgstrService.get(bisInspWagaPblm.getRgstrId()); updateRgtsr(rgstr); return ret; } @Override public int update(BisInspWagaPblm bisInspWagaPblm) { bisInspWagaPblm.setUptm(new Date()); if (StringUtils.isNotBlank(bisInspWagaPblm.getRevwRectConc())) { bisInspWagaPblm.setRevwState("2"); } int ret = this.bisInspWagaPblmDao.update(bisInspWagaPblm); List rslkbkRgstrList = attWagaRgstrService.findList(Builder .of(AttWagaRgstrParam::new) .with(AttWagaRgstrParam::setId, bisInspWagaPblm.getRgstrId()) .with(AttWagaRgstrParam::setObjCode, bisInspWagaPblm.getObjCode()) .build()); if (rslkbkRgstrList != null && rslkbkRgstrList.size() > 0) { rslkbkRgstrList.forEach(this::updateRgtsr); } updateFiles(bisInspWagaPblm); return ret; } private void updateRgtsr(AttWagaRgstr rgstr) { if (!"2".equals(rgstr.getState()) || !"1".equals(rgstr.getState())) { rgstr.setState("1"); attWagaRgstrService.update(rgstr); } } private void updateFiles(BisInspWagaPblm bisInspWagaPblm) { GwComFileParam param = new GwComFileParam(); param.setBizId(bisInspWagaPblm.getId()); param.setBizType("MEND_PROV"); List prov = gwComFileService.findList(param); if (bisInspWagaPblm.getGwComFiles() != null && bisInspWagaPblm.getGwComFiles().size() > 0) { if (prov != null) bisInspWagaPblm.getGwComFiles().addAll(prov); gwComFileService.updateBiz(bisInspWagaPblm.getGwComFiles(), bisInspWagaPblm.getId()); } } @Override public int delete(String id) { return this.bisInspWagaPblmDao.delete(id); } @Override public PageInfo findPageInfo(BisInspWagaPblmParam param) { PageHelper.startPage(param); List list = this.bisInspWagaPblmDao.findList(param); if (list != null && list.size() > 0) { for (BisInspWagaPblm pblm : list) { List gwComFileList = gwComFileService.findList(Builder.of(GwComFileParam::new).with(GwComFileParam::setBizId, pblm.getId()).build()); if (gwComFileList != null && gwComFileList.size() > 0) { gwComFileList = gwComFileList.stream().filter(file -> "MEND_EXTRA".equals(file.getBizType())).collect(Collectors.toList()); } pblm.setGwComFiles(gwComFileList); } } return (PageInfo) new PageInfo(list); } @Override public PageInfo findPageWaga(BisInspWagaPblmParam param) { PageHelper.startPage(param); List list = this.bisInspWagaPblmDao.findList(param); return (PageInfo) new PageInfo(list); } @Override public BisInspWagaPblm getWithExtras(GwComFileParam gwComFileParam) { BisInspWagaPblm bisInspWagaPblm = bisInspWagaPblmDao.get(gwComFileParam.getId()); Optional.ofNullable(bisInspWagaPblm).ifPresent(pblm -> { gwComFileParam.setId(""); List list = gwComFileService.findList(gwComFileParam); pblm.setGwComFiles(list); }); return bisInspWagaPblm; } }