package cn.com.goldenwater.dcproj.service.impl; import cn.com.goldenwater.core.service.AbstractCrudService; import cn.com.goldenwater.dcproj.dao.BisInspStstnSafDao; import cn.com.goldenwater.dcproj.model.BisInspStstnSaf; import cn.com.goldenwater.dcproj.param.BisInspStstnSafParam; import cn.com.goldenwater.dcproj.service.BisInspStstnSafService; import cn.com.goldenwater.dcproj.service.BisInspStstnService; 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 BisInspStstnSafServiceImpl extends AbstractCrudService implements BisInspStstnSafService { @Autowired private BisInspStstnSafDao bisInspStstnSafDao; @Autowired private BisInspStstnService bisInspStstnService; public BisInspStstnSafServiceImpl(BisInspStstnSafDao bisInspStstnSafDao) { super(bisInspStstnSafDao); this.bisInspStstnSafDao = bisInspStstnSafDao; } @Override public int insert(BisInspStstnSaf bisInspStstnSaf) { BisInspStstnSaf saf = get(bisInspStstnSaf.getRgstrId()); if (saf != null) { bisInspStstnSaf.setId(saf.getId()); return update(bisInspStstnSaf); } String uuid = UuidUtil.uuid(); bisInspStstnSaf.setId(uuid); bisInspStstnSaf.setIntm(new Date()); bisInspStstnSaf.setUptm(new Date()); bisInspStstnSaf.setDataStat("0"); total(bisInspStstnSaf); addScore(bisInspStstnSaf); int ret = bisInspStstnSafDao.insert(bisInspStstnSaf); // updateRgstrState(bisInspStstnSaf); return ret; } @Override public int update(BisInspStstnSaf bisInspStstnSaf) { BisInspStstnSaf saf = get(bisInspStstnSaf.getRgstrId()); if (saf == null) { throw new CheckException("未找到此登记表下的子表"); } bisInspStstnSaf.setId(saf.getId()); bisInspStstnSaf.setUptm(new Date()); bisInspStstnSafDao.update(bisInspStstnSaf); BisInspStstnSaf saf1 = get(bisInspStstnSaf.getRgstrId()); saf1.setState(bisInspStstnSaf.getState()); total(saf1); addScore(saf1); int ret = bisInspStstnSafDao.update(saf1); updateRgstrState(saf1); return ret; } @Override public int delete(String id) { return this.bisInspStstnSafDao.delete(id); } private void updateRgstrState(BisInspStstnSaf bisInspStstnSaf) { Map map = new HashMap<>(5); map.put("rgstrId", bisInspStstnSaf.getRgstrId()); map.put("param", "saf"); map.put("state", bisInspStstnSaf.getState()); map.put("caseScore", bisInspStstnSaf.getActualScore()); map.put("total", bisInspStstnSaf.getTotal()); bisInspStstnService.updateState(map); } private void addScore(BisInspStstnSaf bisInspStstnSaf) { double actualScore = 0; actualScore = judge(bisInspStstnSaf.getSiteSaf()) + judge(bisInspStstnSaf.getBimBuldNum()) + judge(bisInspStstnSaf.getBuldRuleNum()) + judge(bisInspStstnSaf.getHolePrctNum()) + judge(bisInspStstnSaf.getStarsPrctNum()) + judge(bisInspStstnSaf.getTunnelPrctNum()) + judge(bisInspStstnSaf.getSiteFullNum()) + judge(bisInspStstnSaf.getSiteSysNum()) + judge(bisInspStstnSaf.getRegSysNum()) ; bisInspStstnSaf.setActualScore(actualScore); } private double judge(Double value) { if (value == null) { return 0; } return value; } private Boolean check(String i) { return "1".equals(i); } private void total(BisInspStstnSaf bisInspStstnSaf) { double total = 30.0; // 标准化建设部分中“加分项”分值计入该部分总得分,不计入该部分应得总分 if (!check(bisInspStstnSaf.getIsBimBuld())) { bisInspStstnSaf.setBimBuldNum(0.0); } // if (!check(bisInspStstnSaf.getIsPartyActivity())) { bisInspStstnSaf.setPartyActivityNum(0.0); // } if (check(bisInspStstnSaf.getIsTunnelPrct())) { total += 9; } else { bisInspStstnSaf.setTunnelPrctNum(0.0); } if (check(bisInspStstnSaf.getIsHolePrct())) { total += 4.5; } else { bisInspStstnSaf.setHolePrctNum(0.0); } if (check(bisInspStstnSaf.getIsStarsPrct())) { total += 2.5; } else { bisInspStstnSaf.setStarsPrctNum(0.0); } // 党建进工地 单独做为填报项 // if (check(bisInspStstnSaf.getIsPartyBranch())) { // total += 3; // } else { bisInspStstnSaf.setPartyBranchNum(0.0); // } // if (check(bisInspStstnSaf.getIsCommunistPartyRoom())) { // total += 8; // } else { bisInspStstnSaf.setCommunistPartyRoomNum(0.0); // } bisInspStstnSaf.setTotal(total); } }