package cn.com.goldenwater.dcproj.service.impl; import cn.com.goldenwater.dcproj.constValue.BisInspEnum; import cn.com.goldenwater.dcproj.constValue.SplitValue; import cn.com.goldenwater.dcproj.dao.BisInspJspwiu2024Dao; import cn.com.goldenwater.dcproj.dto.BisInspJspwiu2024Dto; import cn.com.goldenwater.dcproj.dto.BisInspJspwiuDto; import cn.com.goldenwater.dcproj.model.*; import cn.com.goldenwater.dcproj.param.*; import cn.com.goldenwater.dcproj.service.*; import cn.com.goldenwater.core.service.AbstractCrudService; import cn.com.goldenwater.dcproj.utils.AdLevelUtil; import cn.com.goldenwater.dcproj.utils.Builder; import cn.com.goldenwater.dcproj.utils.Constant; 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 cn.com.goldenwater.id.util.UuidUtil; import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.Date; import java.util.Map; import java.util.Optional; /** * @author lhc * @date 2024-3-4 */ @Service @Transactional public class BisInspJspwiu2024ServiceImpl extends AbstractCrudService implements BisInspJspwiu2024Service { @Autowired private BisInspJspwiu2024Dao bisInspJspwiu2024Dao; @Autowired private BisInspJspwiu2024Service bisInspJspwiu2024Service; @Autowired private AttJspwiu2024BaseService attJspwiu2024BaseService; @Autowired private BisInspJspwiu2024WaterService bisInspJspwiu2024WaterService; public BisInspJspwiu2024ServiceImpl(BisInspJspwiu2024Dao bisInspJspwiu2024Dao) { super(bisInspJspwiu2024Dao); this.bisInspJspwiu2024Dao = bisInspJspwiu2024Dao; } @Override public int insert(BisInspJspwiu2024 bisInspJspwiu2024) { String uuid = UuidUtil.uuid(); // 鐢熸垚uuid bisInspJspwiu2024.setId(uuid); bisInspJspwiu2024.setIntm(new Date()); bisInspJspwiu2024.setUptm(new Date()); bisInspJspwiu2024.setDataStat("0"); // 督查状态 bisInspJspwiu2024.setState("0"); // 填报项 计划用水户节约用水情况 状态 bisInspJspwiu2024.setWtruStat("0"); // 填报项 取水口及监管情况 状态 bisInspJspwiu2024.setUnitStat("0"); // 子表 计划用水户 this.bisInspJspwiu2024WaterService.insert(Builder.of(BisInspJspwiu2024Water::new) .with(BisInspJspwiu2024Water::setRgstrId, uuid) .build()); return this.bisInspJspwiu2024Dao.insert(bisInspJspwiu2024); } @Override public int update(BisInspJspwiu2024 bisInspJspwiu2024) { if(StringUtils.isNotBlank(bisInspJspwiu2024.getObjId())){ updateBase(bisInspJspwiu2024); } bisInspJspwiu2024.setUptm(new Date()); return this.bisInspJspwiu2024Dao.update(bisInspJspwiu2024); } /** * 更新基础表 */ void updateBase(BisInspJspwiu2024 bisInspJspwiu2024) { AttJspwiu2024Base base = attJspwiu2024BaseService.getObjId(bisInspJspwiu2024.getObjId()); Optional.ofNullable(base).ifPresent(b -> { String id = b.getId(); BeanUtils.copyProperties(bisInspJspwiu2024, b); b.setId(id); b.setIntm(null); attJspwiu2024BaseService.update(b); }); } @Override public void updateState(Map map) { BisInspJspwiu2024 rgstr = get(MapUtils.getString(map, "rgstrId")); if (!Constant.STRING_TWO.equals(rgstr.getState())) { rgstr.setUptm(new Date()); rgstr.setState(Constant.STRING_ONE); if ("wtru".equals(MapUtils.getString(map, "param"))) { if (StringUtils.isBlank(rgstr.getWtruStat()) && !"2".equals(MapUtils.getString(map, "state"))) { map.put("state", "1"); } if (StringUtils.isNotBlank(MapUtils.getString(map, "state"))) { rgstr.setWtruStat(MapUtils.getString(map, "state")); } } if ("unit".equals(MapUtils.getString(map, "param"))) { if (StringUtils.isBlank(rgstr.getUnitStat()) && !"2".equals(MapUtils.getString(map, "state"))) { map.put("state", "1"); } if (StringUtils.isNotBlank(MapUtils.getString(map, "state"))) { rgstr.setUnitStat(MapUtils.getString(map, "state")); } } update(rgstr); } } // 实现 BisInspObjStrategy @Override public void insertObj(BisInspAllObj bisInspAllObj, String persId) { BisInspJspwiu2024 bisInspJspwiu2024 = new BisInspJspwiu2024(); AttJspwiu2024Base attJspwiuBase2024 = attJspwiu2024BaseService.get(bisInspAllObj.getCode()); BeanUtils.copyProperties(attJspwiuBase2024, bisInspJspwiu2024); bisInspJspwiu2024.setObjId(bisInspAllObj.getObjId()); // 添加 登记表 insert(bisInspJspwiu2024); } @Override public String getType() { return BisInspEnum.JSPWIU2024.getValue(); } @Override public void cleanObjData(String objId) { BisInspJspwiu2024Param jspwiu2024Param = new BisInspJspwiu2024Param(); jspwiu2024Param.setObjId(objId); List list = this.bisInspJspwiu2024Dao.findList(jspwiu2024Param); if(null != list && list.size()>0){ String id = list.get(0).getId(); // 删除子表 -- 计划用水户节约用水情况 bisInspJspwiu2024WaterService.deleteBy(Builder.of(BisInspJspwiu2024WaterParam::new).with(BisInspJspwiu2024WaterParam::setRgstrId, id).build()); // 删除主表 this.bisInspJspwiu2024Dao.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); List list = this.bisInspJspwiu2024Dao.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 int delete(String id) { return this.bisInspJspwiu2024Dao.delete(id); } @Override public Object findObjListByType(TypeParam typeParam) { return this.bisInspJspwiu2024Dao.findPageList(typeParam); } }