package cn.com.goldenwater.dcproj.service.impl; import cn.com.goldenwater.core.service.AbstractCrudService; import cn.com.goldenwater.dcproj.dao.BisInspWtprjSectionDao; import cn.com.goldenwater.dcproj.model.BisInspWtprjRegister; import cn.com.goldenwater.dcproj.model.BisInspWtprjSection; import cn.com.goldenwater.dcproj.param.BisInspWtprjSectionParam; import cn.com.goldenwater.dcproj.service.BisInspWtprjRegisterService; import cn.com.goldenwater.dcproj.service.BisInspWtprjSectionService; 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.target.CheckException; 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; /** * @author lhc * @date 2021-4-14 */ @Service @Transactional public class BisInspWtprjSectionServiceImpl extends AbstractCrudService implements BisInspWtprjSectionService { @Autowired private BisInspWtprjSectionDao bisInspWtprjSectionDao; @Autowired private BisInspWtprjRegisterService bisInspWtprjRegisterService; public BisInspWtprjSectionServiceImpl(BisInspWtprjSectionDao bisInspWtprjSectionDao) { super(bisInspWtprjSectionDao); this.bisInspWtprjSectionDao = bisInspWtprjSectionDao; } @Override public int insert(BisInspWtprjSection bisInspWtprjSection) { String uuid = UuidUtil.uuid(); bisInspWtprjSection.setId(uuid); bisInspWtprjSection.setIntm(new Date()); bisInspWtprjSection.setUptm(new Date()); bisInspWtprjSection.setDataStat("0"); int ret = this.bisInspWtprjSectionDao.insert(bisInspWtprjSection); updateRgstrState(bisInspWtprjSection.getRgstrId()); return ret; } @Override public int update(BisInspWtprjSection bisInspWtprjSection) { // 获取子表 BisInspWtprjSection child = get(bisInspWtprjSection.getId()); Optional.ofNullable(child).orElseThrow(() -> new CheckException("未找到此登记表下的标段")); // 更新登记表 bisInspWtprjSection.setUptm(new Date()); int ret = this.bisInspWtprjSectionDao.update(bisInspWtprjSection); updateRgstrState(child.getRgstrId()); return ret; } void updateRgstrState(String rgstrId) { BisInspWtprjRegister rgstr = bisInspWtprjRegisterService.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); // 更新登记表状态 bisInspWtprjRegisterService.update(r); } }); } @Override public int delete(String id) { return this.bisInspWtprjSectionDao.delete(id); } @Override public List listByRegId(String rgstrId) { return bisInspWtprjSectionDao.findList(Builder.of(BisInspWtprjSectionParam::new).with(BisInspWtprjSectionParam::setRgstrId, rgstrId).build()); } }