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.BisInspWagajsBdgDao; import cn.com.goldenwater.dcproj.dto.BisInspWagajsBdgDto; import cn.com.goldenwater.dcproj.model.*; import cn.com.goldenwater.dcproj.param.BisInspWagajsBdgDmamParam; import cn.com.goldenwater.dcproj.param.BisInspWagajsBdgParam; import cn.com.goldenwater.dcproj.param.TypeParam; import cn.com.goldenwater.dcproj.service.AttWagaBaseService; import cn.com.goldenwater.dcproj.service.BisInspObjStrategy; import cn.com.goldenwater.dcproj.service.BisInspWagajsBdgDmamService; import cn.com.goldenwater.dcproj.service.BisInspWagajsBdgService; 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.lang.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; /** * @author lhc * @date 2021-5-10 */ @Service @Transactional public class BisInspWagajsBdgServiceImpl extends AbstractCrudService implements BisInspWagajsBdgService, BisInspObjStrategy { @Autowired private BisInspWagajsBdgDao bisInspWagajsBdgDao; @Autowired private AttWagaBaseService attWagaBaseService; @Autowired private BisInspWagajsBdgDmamService bisInspWagajsBdgDmamService; public BisInspWagajsBdgServiceImpl(BisInspWagajsBdgDao bisInspWagajsBdgDao) { super(bisInspWagajsBdgDao); this.bisInspWagajsBdgDao = bisInspWagajsBdgDao; } @Override public int insert(BisInspWagajsBdg bisInspWagajsBdg) { String uuid = UuidUtil.uuid(); // 生成uuid bisInspWagajsBdg.setId(uuid); bisInspWagajsBdg.setIntm(new Date()); bisInspWagajsBdg.setUptm(new Date()); bisInspWagajsBdg.setDataStat("0"); return this.bisInspWagajsBdgDao.insert(bisInspWagajsBdg); } @Override public int update(BisInspWagajsBdg bisInspWagajsBdg) { bisInspWagajsBdg.setUptm(new Date()); int ret = this.bisInspWagajsBdgDao.update(bisInspWagajsBdg); // 更新基础表 if (StringUtils.isNotBlank(bisInspWagajsBdg.getObjCode())) { updateAttWagaBase(bisInspWagajsBdg); } return ret; } void updateAttWagaBase(BisInspWagajsBdg bisInspWagajsBdg) { AttWagaCrrct attWagaCrrct = new AttWagaCrrct(); BeanUtils.copyProperties(bisInspWagajsBdg, attWagaCrrct); attWagaCrrct.setId(null); attWagaBaseService.update(attWagaCrrct); } @Override public int delete(String id) { return this.bisInspWagajsBdgDao.delete(id); } @Override public void insertObj(BisInspAllObj bisInspAllObj, String persId) { BisInspWagajsBdg b = new BisInspWagajsBdg(); AttWagaBase base = attWagaBaseService.get(bisInspAllObj.getCode()); BeanUtils.copyProperties(base, b); b.setObjId(bisInspAllObj.getObjId()); b.setPersId(bisInspAllObj.getPersId()); /* 添加 登记表 */ String uuid = UuidUtil.uuid(); b.setId(uuid); b.setIntm(new Date()); b.setUptm(new Date()); b.setDmamStat("0"); b.setState("0"); b.setDataStat("0"); this.bisInspWagajsBdgDao.insert(b); /* 添加 子表 */ this.bisInspWagajsBdgDmamService.insert(Builder.of(BisInspWagajsBdgDmam::new).with(BisInspWagajsBdgDmam::setRgstrId, uuid).build()); } @Override public String getType() { return BisInspEnum.WAGAJS.getValue(); } @Override public void cleanObjData(String objId) { BisInspWagajsBdgParam rgstrParam = new BisInspWagajsBdgParam(); rgstrParam.setObjId(objId); List list = this.bisInspWagajsBdgDao.findList(rgstrParam); if (list.size() > 0) { String id = list.get(0).getId(); // 删除子表 this.bisInspWagajsBdgDmamService.deleteBy(Builder.of(BisInspWagajsBdgDmamParam::new).with(BisInspWagajsBdgDmamParam::setRgstrId, id).build()); // 删除登记表 this.bisInspWagajsBdgDao.delete(id); } } @Override public Object findObjListByType(TypeParam typeParam) { return this.bisInspWagajsBdgDao.findPageList(typeParam); } @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); List list = this.bisInspWagajsBdgDao.findPageList(typeParam); if (list != null && list.size() > 0) { list.forEach(rgstrDto -> { if (StringUtils.isNotBlank(rgstrDto.getAdFullName())) { String[] adFullNames = rgstrDto.getAdFullName().split("-"); rgstrDto.setProName(adFullNames[0]); if (adFullNames.length > 1) { rgstrDto.setCityName(adFullNames[1]); } if (adFullNames.length > 2) { rgstrDto.setCountyName(adFullNames[2]); } } }); } return new PageInfo<>(list); } @Override public void updateState(Map map) { BisInspWagajsBdg rgstr = get(MapUtils.getString(map, "rgstrId")); if (!Constant.STRING_TWO.equals(rgstr.getState())) { rgstr.setUptm(new Date()); rgstr.setState(Constant.STRING_ONE); if ("dmam".equals(MapUtils.getString(map, "param"))) { if (StringUtils.isBlank(rgstr.getDmamStat()) && !"2".equals(MapUtils.getString(map, "state"))) { map.put("state", "1"); } if (StringUtils.isNotBlank(MapUtils.getString(map, "state"))) { rgstr.setDmamStat(MapUtils.getString(map, "state")); } } update(rgstr); } } }