package cn.com.goldenwater.dcproj.service.impl; import cn.com.goldenwater.core.service.AbstractCrudService; import cn.com.goldenwater.dcproj.dao.BisInspStstnTmprDao; import cn.com.goldenwater.dcproj.model.BisInspStstnTmpr; import cn.com.goldenwater.dcproj.param.BisInspStstnTmprParam; import cn.com.goldenwater.dcproj.service.BisInspStstnService; import cn.com.goldenwater.dcproj.service.BisInspStstnTmprService; 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; /** * @author lhc * @date 2021-7-13 */ @Service @Transactional public class BisInspStstnTmprServiceImpl extends AbstractCrudService implements BisInspStstnTmprService { @Autowired private BisInspStstnTmprDao bisInspStstnTmprDao; @Autowired private BisInspStstnService bisInspStstnService; public BisInspStstnTmprServiceImpl(BisInspStstnTmprDao bisInspStstnTmprDao) { super(bisInspStstnTmprDao); this.bisInspStstnTmprDao = bisInspStstnTmprDao; } @Override public int insert(BisInspStstnTmpr bisInspStstnTmpr) { BisInspStstnTmpr tmpr = get(bisInspStstnTmpr.getRgstrId()); if (tmpr != null) { bisInspStstnTmpr.setId(tmpr.getId()); update(bisInspStstnTmpr); } String uuid = UuidUtil.uuid(); bisInspStstnTmpr.setId(uuid); bisInspStstnTmpr.setIntm(new Date()); bisInspStstnTmpr.setUptm(new Date()); bisInspStstnTmpr.setDataStat("0"); bisInspStstnTmpr.setState("0"); total(bisInspStstnTmpr); addScore(bisInspStstnTmpr); int ret = bisInspStstnTmprDao.insert(bisInspStstnTmpr); // updateRgstrState(bisInspStstnTmpr); return ret; } @Override public int update(BisInspStstnTmpr bisInspStstnTmpr) { BisInspStstnTmpr tmpr = get(bisInspStstnTmpr.getRgstrId()); if (tmpr == null) { throw new CheckException("未找到此登记表下的子表"); } bisInspStstnTmpr.setId(tmpr.getId()); bisInspStstnTmpr.setUptm(new Date()); bisInspStstnTmprDao.update(bisInspStstnTmpr); BisInspStstnTmpr tmpr1 = get(bisInspStstnTmpr.getRgstrId()); tmpr1.setState(bisInspStstnTmpr.getState()); total(tmpr1); addScore(tmpr1); int ret = bisInspStstnTmprDao.update(tmpr1); updateRgstrState(tmpr1); return ret; } @Override public int delete(String id) { return this.bisInspStstnTmprDao.delete(id); } private void updateRgstrState(BisInspStstnTmpr bisInspStstnTmpr) { Map map = new HashMap<>(5); map.put("rgstrId", bisInspStstnTmpr.getRgstrId()); map.put("param", "tmpr"); map.put("state", bisInspStstnTmpr.getState()); map.put("caseScore", bisInspStstnTmpr.getActualScore()); map.put("total", bisInspStstnTmpr.getTotal()); bisInspStstnService.updateState(map); } private double judge(Double value) { if (value == null) { return 0; } return value; } private void addScore(BisInspStstnTmpr bisInspStstnTmpr) { double actualScore = 0; actualScore = judge(bisInspStstnTmpr.getIibDistNum()) + judge(bisInspStstnTmpr.getIibNroomNum()) + judge(bisInspStstnTmpr.getIibKillNum()) + judge(bisInspStstnTmpr.getIibPrctNum()) + judge(bisInspStstnTmpr.getAkDistNum()) + judge(bisInspStstnTmpr.getCablePrctNum()) + judge(bisInspStstnTmpr.getFixLineNum()) + judge(bisInspStstnTmpr.getFixSameFix()) + judge(bisInspStstnTmpr.getPowerSameNum()) + judge(bisInspStstnTmpr.getLedRghtNum()) + judge(bisInspStstnTmpr.getSiteSysNum()) + judge(bisInspStstnTmpr.getFrpGapNum()) + judge(bisInspStstnTmpr.getFrpRqrNum()) + judge(bisInspStstnTmpr.getFrpCnfrNum()) + judge(bisInspStstnTmpr.getBttmGapNum()) + judge(bisInspStstnTmpr.getTopGapNum()) + judge(bisInspStstnTmpr.getLngtGapNum()) + judge(bisInspStstnTmpr.getNaerRqrNum()) + judge(bisInspStstnTmpr.getSplcRqrNum()) + judge(bisInspStstnTmpr.getFrpFixNum()) + judge(bisInspStstnTmpr.getTfrpFixNum()) + judge(bisInspStstnTmpr.getTfrpBuldNum()) + judge(bisInspStstnTmpr.getFloorRqrNum()) + judge(bisInspStstnTmpr.getLfrpFixNum()) + judge(bisInspStstnTmpr.getFrpChnnNum()) + judge(bisInspStstnTmpr.getFrpPassNum()) + judge(bisInspStstnTmpr.getSiteC30Num()) + judge(bisInspStstnTmpr.getSiteLocNum()) + judge(bisInspStstnTmpr.getSiteLmtNum()) + judge(bisInspStstnTmpr.getSiteRqrNum()) + judge(bisInspStstnTmpr.getRiskPubNum()); bisInspStstnTmpr.setActualScore(actualScore); } private void total(BisInspStstnTmpr bisInspStstnTmpr) { double total = 27.0; if (check(bisInspStstnTmpr.getIsLineFix())) { total += 2; } else { bisInspStstnTmpr.setFixLineNum(0.0); } if (check(bisInspStstnTmpr.getIsFixSame())) { total += 2; } else { bisInspStstnTmpr.setFixSameFix(0.0); } if (check(bisInspStstnTmpr.getIsPowerSame())) { total += 1; } else { bisInspStstnTmpr.setPowerSameNum(0.0); } if (check(bisInspStstnTmpr.getIsFrpCnfr())) { total += 3; } else { bisInspStstnTmpr.setFrpCnfrNum(0.0); } if (check(bisInspStstnTmpr.getIsFrpRqr())) { total += 4; } else { bisInspStstnTmpr.setFrpRqrNum(0.0); } if (check(bisInspStstnTmpr.getIsFrpGap())) { total += 3; } else { bisInspStstnTmpr.setFrpGapNum(0.0); } if (check(bisInspStstnTmpr.getIsBttmGap())) { total += 3; } else { bisInspStstnTmpr.setBttmGapNum(0.0); } if (check(bisInspStstnTmpr.getIsTopGap())) { total += 1; } else { bisInspStstnTmpr.setTopGapNum(0.0); } if (check(bisInspStstnTmpr.getIsLngtGap())) { total += 1; } else { bisInspStstnTmpr.setLngtGapNum(0.0); } if (check(bisInspStstnTmpr.getIsNaerRqr())) { total += 2; } else { bisInspStstnTmpr.setNaerRqrNum(0.0); } if (check(bisInspStstnTmpr.getIsSplcRqr())) { total += 1; } else { bisInspStstnTmpr.setSplcRqrNum(0.0); } if (check(bisInspStstnTmpr.getIsFrpFix())) { total += 2; } else { bisInspStstnTmpr.setFrpFixNum(0.0); } if (check(bisInspStstnTmpr.getIsTfrpFix())) { total += 2; } else { bisInspStstnTmpr.setTfrpFixNum(0.0); } if (check(bisInspStstnTmpr.getIsTfrpBuld())) { total += 2; } else { bisInspStstnTmpr.setTfrpBuldNum(0.0); } if (check(bisInspStstnTmpr.getIsFloorRqr())) { total += 2; } else { bisInspStstnTmpr.setFloorRqrNum(0.0); } if (check(bisInspStstnTmpr.getIsLfrpFix())) { total += 2; } else { bisInspStstnTmpr.setLfrpFixNum(0.0); } if (check(bisInspStstnTmpr.getIsFrpChnn())) { total += 2; } else { bisInspStstnTmpr.setFrpChnnNum(0.0); } if (check(bisInspStstnTmpr.getIsSiteLoc())) { total += 2; } else { bisInspStstnTmpr.setSiteLocNum(0.0); } if (check(bisInspStstnTmpr.getIsFrpPass())) { total += 2; } else { bisInspStstnTmpr.setFrpPassNum(0.0); } if (check(bisInspStstnTmpr.getIsSiteLmt())) { total += 2; } else { bisInspStstnTmpr.setSiteLmtNum(0.0); } if (check(bisInspStstnTmpr.getIsRiskPub())) { total += 2; } else { bisInspStstnTmpr.setRiskPubNum(0.0); } if (check(bisInspStstnTmpr.getIsSiteRqr())) { total += 3; } else { bisInspStstnTmpr.setSiteRqrNum(0.0); } bisInspStstnTmpr.setTotal(total); } private Boolean check(String i) { return "1".equals(i); } }