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.BisInspAllRlationDao; import cn.com.goldenwater.dcproj.dao.BisInspDstfldqhDao; import cn.com.goldenwater.dcproj.dto.BisInspDstfldqhDto; import cn.com.goldenwater.dcproj.model.AttDstfldqhBase; import cn.com.goldenwater.dcproj.model.BisInspAllObj; import cn.com.goldenwater.dcproj.model.BisInspDstfldqh; import cn.com.goldenwater.dcproj.param.BisInspAllRlationParam; import cn.com.goldenwater.dcproj.param.BisInspDstfldqhParam; import cn.com.goldenwater.dcproj.param.TypeParam; import cn.com.goldenwater.dcproj.service.AttAdXBaseService; import cn.com.goldenwater.dcproj.service.AttDstfldqhBaseService; import cn.com.goldenwater.dcproj.service.BisInspDstfldqhService; import cn.com.goldenwater.dcproj.service.BisInspObjStrategy; import cn.com.goldenwater.dcproj.utils.AdLevelUtil; import cn.com.goldenwater.dcproj.utils.Builder; import cn.com.goldenwater.dcproj.utils.Constant; import cn.com.goldenwater.id.util.UuidUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.apache.commons.collections.MapUtils; 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 javax.servlet.http.HttpServletResponse; import java.util.Date; import java.util.List; import java.util.Map; import java.util.Optional; /** * @author lhc * @date 2021-6-10 */ @Service @Transactional public class BisInspDstfldqhServiceImpl extends AbstractCrudService implements BisInspDstfldqhService, BisInspObjStrategy { @Autowired private BisInspDstfldqhDao bisInspDstfldqhDao; @Autowired private AttAdXBaseService attAdXBaseService; @Autowired private BisInspAllRlationDao bisInspAllRlationDao; @Autowired private AttDstfldqhBaseService attDstfldqhBaseService; public BisInspDstfldqhServiceImpl(BisInspDstfldqhDao bisInspDstfldqhDao) { super(bisInspDstfldqhDao); this.bisInspDstfldqhDao = bisInspDstfldqhDao; } @Override public int insert(BisInspDstfldqh bisInspDstfldqh) { String uuid = UuidUtil.uuid(); bisInspDstfldqh.setId(uuid); bisInspDstfldqh.setIntm(new Date()); bisInspDstfldqh.setUptm(new Date()); bisInspDstfldqh.setDataStat("0"); bisInspDstfldqh.setState("0"); bisInspDstfldqh.setNoteState("0"); return this.bisInspDstfldqhDao.insert(bisInspDstfldqh); } @Override public int update(BisInspDstfldqh bisInspDstfldqh) { bisInspDstfldqh.setUptm(new Date()); int ret = this.bisInspDstfldqhDao.update(bisInspDstfldqh); updateBase(bisInspDstfldqh); return ret; } /** * 修改基础表 * @param bisInspDstfldqh 登记表 */ private void updateBase(BisInspDstfldqh bisInspDstfldqh) { if (StringUtils.isBlank(bisInspDstfldqh.getObjId())) { bisInspDstfldqh = get(bisInspDstfldqh.getId()); } if (bisInspDstfldqh == null){ return; } AttDstfldqhBase attDstfldqhBase = attDstfldqhBaseService.getObjId(bisInspDstfldqh.getObjId()); BisInspDstfldqh finalBisInspDstfldqh = bisInspDstfldqh; Optional.ofNullable(attDstfldqhBase).ifPresent(base ->{ String baseId = base.getId(); BeanUtils.copyProperties(finalBisInspDstfldqh, base); base.setId(baseId); base.setIntm(null); base.setDataStat(null); attDstfldqhBaseService.update(base); }); } @Override public int delete(String id) { return this.bisInspDstfldqhDao.delete(id); } @Override public void insertObj(BisInspAllObj bisInspAllObj, String persId) { BisInspDstfldqh b = new BisInspDstfldqh(); AttDstfldqhBase base = attDstfldqhBaseService.get(bisInspAllObj.getCode()); BeanUtils.copyProperties(base, b); b.setObjId(bisInspAllObj.getObjId()); b.setPersId(persId); /* 添加 登记表 */ insert(b); } @Override public String getType() { return BisInspEnum.DSTFLDQH.getValue(); } @Override public void cleanObjData(String objId) { BisInspDstfldqhParam rgstrParam = new BisInspDstfldqhParam(); rgstrParam.setObjId(objId); List list = this.bisInspDstfldqhDao.findList(rgstrParam); if (list.size() > 0) { String id = list.get(0).getId(); // 删除登记表 this.bisInspDstfldqhDao.delete(id); } } @Override public PageInfo findObjPageByType(TypeParam typeParam, HttpServletResponse response) { if (StringUtils.isNotBlank(typeParam.getAdCode())) { typeParam.setAdCode(String.valueOf(AdLevelUtil.SubAd(typeParam.getAdCode()).get(SplitValue.SUBAD))); } PageHelper.startPage(typeParam); String[] groupIds = bisInspAllRlationDao.getIdByPersid(Builder .of(BisInspAllRlationParam::new) .with(BisInspAllRlationParam::setPersid, typeParam.getPresId()) .with(BisInspAllRlationParam::setpType, typeParam.getpType()) .build()); typeParam.setGroupIds(groupIds); List list = this.bisInspDstfldqhDao.findPageList(typeParam); return (PageInfo) new PageInfo(list); } @Override public void updateState(Map map) { BisInspDstfldqh rgstr = get(MapUtils.getString(map, "rgstrId")); if (!Constant.STRING_TWO.equals(rgstr.getState()) && StringUtils.isNotBlank(MapUtils.getString(map, "state"))) { rgstr.setUptm(new Date()); rgstr.setState(Constant.STRING_ONE); if ("note".equals(MapUtils.getString(map, "param"))) { rgstr.setNoteState(MapUtils.getString(map, "state")); } update(rgstr); } } @Override public Object findObjListByType(TypeParam typeParam) { return this.bisInspDstfldqhDao.findPageList(typeParam); } }