package cn.com.goldenwater.dcproj.service.impl; import cn.com.goldenwater.core.service.AbstractCrudService; import cn.com.goldenwater.dcproj.constValue.BisInspEnum; import cn.com.goldenwater.dcproj.constValue.SplitValue; import cn.com.goldenwater.dcproj.dao.AttCwsBaseDao; import cn.com.goldenwater.dcproj.dao.BisInspPblmDao; import cn.com.goldenwater.dcproj.dao.BisInspVillqhFeeDao; import cn.com.goldenwater.dcproj.model.AttAdXBase; import cn.com.goldenwater.dcproj.model.AttCwsBase; import cn.com.goldenwater.dcproj.model.BisInspVillqhFee; import cn.com.goldenwater.dcproj.model.BisInspVillqhRgstr; import cn.com.goldenwater.dcproj.param.BisInspPblmParam; import cn.com.goldenwater.dcproj.param.BisInspVillqhFeeParam; import cn.com.goldenwater.dcproj.param.CwsParam; import cn.com.goldenwater.dcproj.service.AttAdXBaseService; import cn.com.goldenwater.dcproj.service.BisInspVillqhFeeService; import cn.com.goldenwater.dcproj.service.BisInspVillqhRgstrService; import cn.com.goldenwater.dcproj.utils.Builder; import cn.com.goldenwater.dcproj.utils.Constant; import cn.com.goldenwater.dcproj.utils.DateUtils; 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.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.*; import static cn.com.goldenwater.dcproj.util.CheckUtil.check; /** * @author lhc * @date 2021-2-1 */ @Service @Transactional public class BisInspVillqhFeeServiceImpl extends AbstractCrudService implements BisInspVillqhFeeService { @Autowired private BisInspVillqhFeeDao bisInspVillqhFeeDao; @Autowired private AttCwsBaseDao attCwsBaseDao; @Autowired private AttAdXBaseService attAdXBaseService; @Autowired private BisInspVillqhRgstrService bisInspVillqhRgstrService; @Autowired private BisInspPblmDao bisInspPblmDao; public BisInspVillqhFeeServiceImpl(BisInspVillqhFeeDao bisInspVillqhFeeDao) { super(bisInspVillqhFeeDao); this.bisInspVillqhFeeDao = bisInspVillqhFeeDao; } @Override public int insert(BisInspVillqhFee bisInspVillqhFee) { // 生成uuid String uuid = UuidUtil.uuid(); bisInspVillqhFee.setId(uuid); bisInspVillqhFee.setStatus(Constant.STRING_ONE); bisInspVillqhFee.setDataStat(Constant.STRING_ZERO); Date now = new Date(); bisInspVillqhFee.setIntm(now); bisInspVillqhFee.setUptm(now); bisInspVillqhFee.setVisitDate(DateUtils.Date2Str(now)); return this.bisInspVillqhFeeDao.insert(bisInspVillqhFee); } @Override public int update(BisInspVillqhFee bisInspVillqhFee) { // 获取子表 BisInspVillqhFee child = get(bisInspVillqhFee.getId()); Optional.ofNullable(child).orElseThrow(() -> new CheckException("未找到此表")); // 更新子表 bisInspVillqhFee.setUptm(new Date()); int ret = bisInspVillqhFeeDao.update(bisInspVillqhFee); // 更新登记表状态 Map map = new HashMap<>(3); map.put("rgstrId", child.getRegstrId()); map.put("param", "fee"); map.put("state", bisInspVillqhFee.getState()); bisInspVillqhRgstrService.updateState(map); return ret; } @Override public int delete(String id) { BisInspVillqhFee fee = get(id); BisInspVillqhRgstr rgstr = bisInspVillqhRgstrService.get(fee.getRegstrId()); BisInspPblmParam pblm = Builder.of(BisInspPblmParam::new) .with(BisInspPblmParam::setCwsCode, id) .with(BisInspPblmParam::setObjId, rgstr.getObjId()) .with(BisInspPblmParam::setObjType, BisInspEnum.VILLQH.getValue()) .build(); bisInspPblmDao.deleteBy(pblm); return this.bisInspVillqhFeeDao.delete(id); } @Override public PageInfo pageNotDC(CwsParam cwsParam) { PageHelper.startPage(cwsParam.getPageNum(), cwsParam.getPageSize()); List bisInspBaseDtos = attCwsBaseDao.queryListByRegstrIdNotDC(cwsParam); return new PageInfo<>(bisInspBaseDtos); } @Override public void addBatch(CwsParam cwsParam) { check(StringUtils.isNotBlank(cwsParam.getCwsIds()), "cwsIds.no"); String[] cwsIdArray; if (cwsParam.getCwsIds().contains(SplitValue.FENHAO_SPLIT)){ cwsIdArray = cwsParam.getCwsIds().split(SplitValue.FENHAO_SPLIT); } else { cwsIdArray = cwsParam.getCwsIds().split(SplitValue.DOUHAO_SPLIT); } for (String cwsId : cwsIdArray) { AttCwsBase attCwsBase = attCwsBaseDao.get(cwsId); if (attCwsBase == null) { continue; } BisInspVillqhFee fee = Builder.of(BisInspVillqhFee::new) .with(BisInspVillqhFee::setRegstrId, cwsParam.getRegstrId()) .with(BisInspVillqhFee::setAdCode, cwsParam.getAdCode()) .build(); if (StringUtils.isNotBlank(cwsParam.getAdCode())) { AttAdXBase attAdXBase = attAdXBaseService.get(cwsParam.getAdCode()); Optional.ofNullable(attAdXBase).ifPresent(base -> { fee.setAdCode(base.getAdCode()); fee.setAdFullName(base.getAdFullName()); fee.setAdName(base.getAdName()); }); } fee.setPrjId(attCwsBase.getCwsCode()); fee.setPrjNm(attCwsBase.getCwsName()); fee.setPrjType(attCwsBase.getEngType()); fee.setGdX(attCwsBase.getCenterXGd()); fee.setGdY(attCwsBase.getCenterYGd()); fee.setCenterX(attCwsBase.getCwsLong()); fee.setCenterY(attCwsBase.getCwsLat()); fee.setBuldTm(attCwsBase.getCompDate()); insert(fee); } updateRgstrState(cwsParam.getRegstrId()); } void updateRgstrState(String rgstrId) { BisInspVillqhRgstr rgstr = bisInspVillqhRgstrService.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); // 更新登记表状态 bisInspVillqhRgstrService.update(r); } }); } }