package cn.com.goldenwater.dcproj.service.impl; import cn.com.goldenwater.core.service.AbstractCrudService; import cn.com.goldenwater.dcproj.constValue.SplitValue; import cn.com.goldenwater.dcproj.dao.BisInspQymtenEffcDao; import cn.com.goldenwater.dcproj.dto.AttStstnBaseDto; import cn.com.goldenwater.dcproj.model.AttStstnBase; import cn.com.goldenwater.dcproj.model.BisInspQymtenEffc; import cn.com.goldenwater.dcproj.param.AttStstnBaseParam; import cn.com.goldenwater.dcproj.param.BisInspQymtenEffcParam; import cn.com.goldenwater.dcproj.service.AttStstnBaseService; import cn.com.goldenwater.dcproj.service.BisInspQymtenEffcService; import cn.com.goldenwater.dcproj.utils.AdLevelUtil; import cn.com.goldenwater.id.util.UuidUtil; import cn.com.goldenwater.target.CheckException; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; 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; /** * @author lhc * @date 2021-7-19 */ @Service @Transactional public class BisInspQymtenEffcServiceImpl extends AbstractCrudService implements BisInspQymtenEffcService { @Autowired private BisInspQymtenEffcDao bisInspQymtenEffcDao; @Autowired private AttStstnBaseService attStstnBaseService; public BisInspQymtenEffcServiceImpl(BisInspQymtenEffcDao bisInspQymtenEffcDao) { super(bisInspQymtenEffcDao); this.bisInspQymtenEffcDao = bisInspQymtenEffcDao; } @Override public int insert(BisInspQymtenEffc bisInspQymtenEffc) { String uuid = UuidUtil.uuid(); // 生成uuid bisInspQymtenEffc.setId(uuid); bisInspQymtenEffc.setIntm(new Date()); bisInspQymtenEffc.setUptm(new Date()); bisInspQymtenEffc.setDataStat("0"); // bisInspQymtenEffc.setScore(score(bisInspQymtenEffc)); return this.bisInspQymtenEffcDao.insert(bisInspQymtenEffc); } @Override public int update(BisInspQymtenEffc bisInspQymtenEffc) { bisInspQymtenEffc.setUptm(new Date()); int ret = this.bisInspQymtenEffcDao.update(bisInspQymtenEffc); updateBase(bisInspQymtenEffc); return ret; } /** * 更新基础表 * * @param bisInspQymtenEffc */ private void updateBase(BisInspQymtenEffc bisInspQymtenEffc) { if (StringUtils.isBlank(bisInspQymtenEffc.getUtId())){ return; } String baseId = bisInspQymtenEffc.getUtId(); AttStstnBase attStstnBase = new AttStstnBase(); BeanUtils.copyProperties(bisInspQymtenEffc, attStstnBase); attStstnBase.setId(baseId); attStstnBaseService.update(attStstnBase); } @Override public int delete(String id) { return this.bisInspQymtenEffcDao.delete(id); } private double judge(Double value) { if (value == null) { return 0; } return value; } private Double score(BisInspQymtenEffc bisInspQymtenEffc) { double score = 100.0; score = score - judge(bisInspQymtenEffc.getQyBuldNum()) - judge(bisInspQymtenEffc.getQySendNum()) - judge(bisInspQymtenEffc.getQyDutyNum()) - judge(bisInspQymtenEffc.getQyChkNum()) - judge(bisInspQymtenEffc.getChkMendNum()) - judge(bisInspQymtenEffc.getQyDsgnNum()) - judge(bisInspQymtenEffc.getDsgnIdeaNum()) - judge(bisInspQymtenEffc.getSiteBuldNum()) - judge(bisInspQymtenEffc.getSiteDsgnNum()) - judge(bisInspQymtenEffc.getQyCbuldNum()) - judge(bisInspQymtenEffc.getSendNum()) - judge(bisInspQymtenEffc.getSprDutyNum()) - judge(bisInspQymtenEffc.getSprQyNum()) - judge(bisInspQymtenEffc.getEnsrSysNum()) - judge(bisInspQymtenEffc.getBuldQyNum()) - judge(bisInspQymtenEffc.getInvsNum()) - judge(bisInspQymtenEffc.getAccpNum()) - judge(bisInspQymtenEffc.getQySprNum()) - judge(bisInspQymtenEffc.getPrjtQyNum()) - judge(bisInspQymtenEffc.getBuldChkNum()) - judge(bisInspQymtenEffc.getSiteMgrNum()) - judge(bisInspQymtenEffc.getEntyQyNum()) - judge(bisInspQymtenEffc.getOtherNum()); return score; } @Override public PageInfo notInsertList(AttStstnBaseParam attStstnBaseParam) { if (StringUtils.isNotBlank(attStstnBaseParam.getAdCode())) { attStstnBaseParam.setAdCode(String.valueOf(AdLevelUtil.SubAd(attStstnBaseParam.getAdCode()) .get(SplitValue.SUBAD))); } PageHelper.startPage(attStstnBaseParam); List list = bisInspQymtenEffcDao.notInsertList(attStstnBaseParam); return new PageInfo<>(list); } @Override public void batchAdd(AttStstnBaseDto attStstnBaseDto) { if (StringUtils.isBlank(attStstnBaseDto.getRgstrId())) { throw new CheckException("缺少登记表Id"); } List ststnBaseList = attStstnBaseDto.getList(); for (AttStstnBase attStstnBase : ststnBaseList) { BisInspQymtenEffcParam bisInspQymtenEffcParam = new BisInspQymtenEffcParam(); bisInspQymtenEffcParam.setUtId(attStstnBase.getId()); bisInspQymtenEffcParam.setRgstrId(attStstnBaseDto.getRgstrId()); BisInspQymtenEffc Effc = bisInspQymtenEffcDao.getBy(bisInspQymtenEffcParam); if (Effc == null) { BisInspQymtenEffc bisInspQymtenEffc = new BisInspQymtenEffc(); bisInspQymtenEffc.setRgstrId(attStstnBaseDto.getRgstrId()); bisInspQymtenEffc.setUtId(attStstnBase.getId()); bisInspQymtenEffc.setNm(attStstnBase.getNm()); bisInspQymtenEffc.setAdCode(attStstnBase.getAdCode()); bisInspQymtenEffc.setAdName(attStstnBase.getAdName()); bisInspQymtenEffc.setLoc(attStstnBase.getLoc()); bisInspQymtenEffc.setPrjcType(attStstnBase.getPrjcType()); bisInspQymtenEffc.setCost(attStstnBase.getCost()); bisInspQymtenEffc.setCostYear(attStstnBase.getCostYear()); bisInspQymtenEffc.setMgr(attStstnBase.getMgr()); bisInspQymtenEffc.setOwner(attStstnBase.getOwner()); bisInspQymtenEffc.setQuality(attStstnBase.getQuality()); bisInspQymtenEffc.setDesign(attStstnBase.getDesign()); bisInspQymtenEffc.setSupervisor(attStstnBase.getSupervisor()); bisInspQymtenEffc.setBuild(attStstnBase.getBuild()); bisInspQymtenEffc.setPrjcPers(attStstnBase.getPrjcPers()); bisInspQymtenEffc.setPrjcPresTel(attStstnBase.getPrjcPresTel()); bisInspQymtenEffc.setPersId(attStstnBaseDto.getPersId()); insert(bisInspQymtenEffc); } } } }