package cn.com.goldenwater.dcproj.service.impl; import cn.com.goldenwater.core.service.AbstractCrudService; import cn.com.goldenwater.dcproj.dao.BisInspFloodqhCaseDao; import cn.com.goldenwater.dcproj.model.BisInspFloodqhCase; import cn.com.goldenwater.dcproj.param.BisInspFloodqhCaseParam; import cn.com.goldenwater.dcproj.service.BisInspFloodqhCaseService; import cn.com.goldenwater.dcproj.service.BisInspFloodqhService; 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.HashMap; import java.util.Map; import java.util.Optional; /** * @author lhc * @date 2021-6-9 */ @Service @Transactional public class BisInspFloodqhCaseServiceImpl extends AbstractCrudService implements BisInspFloodqhCaseService { @Autowired private BisInspFloodqhCaseDao bisInspFloodqhCaseDao; @Autowired private BisInspFloodqhService bisInspFloodqhService; public BisInspFloodqhCaseServiceImpl(BisInspFloodqhCaseDao bisInspFloodqhCaseDao) { super(bisInspFloodqhCaseDao); this.bisInspFloodqhCaseDao = bisInspFloodqhCaseDao; } @Override public BisInspFloodqhCase get(String key) { return Optional.ofNullable(super.get(key)).orElseGet(() -> { BisInspFloodqhCase bisInspFloodqhCase = new BisInspFloodqhCase(); bisInspFloodqhCase.setChkType("1"); bisInspFloodqhCase.setIsMakPlan("1"); bisInspFloodqhCase.setPlanApp("1"); bisInspFloodqhCase.setIsDrill("1"); bisInspFloodqhCase.setIsPubDuty("1"); bisInspFloodqhCase.setIsChkLog("1"); bisInspFloodqhCase.setState("1"); return bisInspFloodqhCase; }); } @Override public int insert(BisInspFloodqhCase bisInspFloodqhCase) { BisInspFloodqhCase checkRgstr = bisInspFloodqhCaseDao.get(bisInspFloodqhCase.getRgstrId()); if (checkRgstr != null) { bisInspFloodqhCase.setId(checkRgstr.getId()); return update(bisInspFloodqhCase); } updateRgstrState(bisInspFloodqhCase); String uuid = UuidUtil.uuid(); bisInspFloodqhCase.setId(uuid); bisInspFloodqhCase.setIntm(new Date()); bisInspFloodqhCase.setUptm(new Date()); bisInspFloodqhCase.setDataStat("0"); return this.bisInspFloodqhCaseDao.insert(bisInspFloodqhCase); } @Override public int update(BisInspFloodqhCase bisInspFloodqhCase) { // 获取子表 BisInspFloodqhCase farm = get(bisInspFloodqhCase.getRgstrId()); if (farm == null) { throw new CheckException("未找到此登记表下的子表"); } // 更新子表 bisInspFloodqhCase.setId(farm.getId()); bisInspFloodqhCase.setUptm(new Date()); int ret = bisInspFloodqhCaseDao.update(bisInspFloodqhCase); // 更新登记表状态 updateRgstrState(bisInspFloodqhCase); return ret; } private void updateRgstrState(BisInspFloodqhCase bisInspFloodqhCase) { Map map = new HashMap<>(3); map.put("rgstrId", bisInspFloodqhCase.getRgstrId()); map.put("param", "case"); map.put("state", bisInspFloodqhCase.getState()); bisInspFloodqhService.updateState(map); } @Override public int delete(String id) { return this.bisInspFloodqhCaseDao.delete(id); } }