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.BisInspRvgmRgstrDao; import cn.com.goldenwater.dcproj.dto.BisInspRvgmRgstrDto; import cn.com.goldenwater.dcproj.model.AttRvgmBase; import cn.com.goldenwater.dcproj.model.BisInspAllObj; import cn.com.goldenwater.dcproj.model.BisInspRvgmRgstr; import cn.com.goldenwater.dcproj.param.*; import cn.com.goldenwater.dcproj.service.*; 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-4-1 */ @Service @Transactional public class BisInspRvgmRgstrServiceImpl extends AbstractCrudService implements BisInspRvgmRgstrService, BisInspObjStrategy { @Autowired private BisInspRvgmRgstrDao bisInspRvgmRgstrDao; @Autowired private AttRvgmBaseService attRvgmBaseService; @Autowired private BisInspRvgmAdmService bisInspRvgmAdmService; @Autowired private BisInspRvgmBswkService bisInspRvgmBswkService; @Autowired private BisInspRvgmCostService bisInspRvgmCostService; @Autowired private BisInspRvgmOthrService bisInspRvgmOthrService; @Autowired private BisInspRvgmSysService bisInspRvgmSysService; public BisInspRvgmRgstrServiceImpl(BisInspRvgmRgstrDao bisInspRvgmRgstrDao) { super(bisInspRvgmRgstrDao); this.bisInspRvgmRgstrDao = bisInspRvgmRgstrDao; } @Override public int insert(BisInspRvgmRgstr bisInspRvgmRgstr) { String uuid = UuidUtil.uuid(); bisInspRvgmRgstr.setId(uuid); bisInspRvgmRgstr.setIntm(new Date()); bisInspRvgmRgstr.setUptm(new Date()); bisInspRvgmRgstr.setDataStat("0"); return this.bisInspRvgmRgstrDao.insert(bisInspRvgmRgstr); } @Override public int update(BisInspRvgmRgstr bisInspRvgmRgstr) { bisInspRvgmRgstr.setUptm(new Date()); int ret = this.bisInspRvgmRgstrDao.update(bisInspRvgmRgstr); // 更新基础表信息 updateAttBase(bisInspRvgmRgstr); return ret; } private void updateAttBase(BisInspRvgmRgstr rgstr) { BisInspRvgmRgstr r = get(rgstr.getId()); AttRvgmBase attWiuqhBase = attRvgmBaseService.getObjId(r.getObjId()); attWiuqhBase.setAdCode(rgstr.getAdCode()); attWiuqhBase.setAdName(rgstr.getAdName()); attWiuqhBase.setCenterX(rgstr.getCenterX()); attWiuqhBase.setCenterY(rgstr.getCenterY()); attWiuqhBase.setDepName(rgstr.getDepName()); attWiuqhBase.setDepPers(rgstr.getDepPers()); attWiuqhBase.setDepPersTel(rgstr.getDepPersTel()); attWiuqhBase.setGdX(rgstr.getGdX()); attWiuqhBase.setGdY(rgstr.getGdY()); attWiuqhBase.setLoc(rgstr.getLoc()); attWiuqhBase.setNote(rgstr.getNote()); attWiuqhBase.setUtLead(rgstr.getUtLead()); attWiuqhBase.setPrincipalTel(rgstr.getPrincipalTel()); attRvgmBaseService.update(attWiuqhBase); } @Override public int delete(String id) { return this.bisInspRvgmRgstrDao.delete(id); } @Override public void insertObj(BisInspAllObj bisInspAllObj, String persId) { BisInspRvgmRgstr b = new BisInspRvgmRgstr(); AttRvgmBase base = attRvgmBaseService.get(bisInspAllObj.getCode()); BeanUtils.copyProperties(base, b); b.setObjId(bisInspAllObj.getObjId()); b.setId(UuidUtil.uuid()); b.setIntm(new Date()); b.setUptm(new Date()); b.setDataStat("0"); b.setState("0"); b.setSysStat("0"); b.setAdmStat("0"); b.setBswkStat("0"); b.setCostStat("0"); b.setOthrStat("0"); /* 添加 登记表 */ bisInspRvgmRgstrDao.insert(b); // 添加 子表 bisInspRvgmAdmService.insert(Builder.of(BisInspRvgmAdmParam::new).with(BisInspRvgmAdmParam::setRgstrId, b.getId()).build()); bisInspRvgmBswkService.insert(Builder.of(BisInspRvgmBswkParam::new).with(BisInspRvgmBswkParam::setRgstrId, b.getId()).build()); bisInspRvgmCostService.insert(Builder.of(BisInspRvgmCostParam::new).with(BisInspRvgmCostParam::setRgstrId, b.getId()).build()); bisInspRvgmOthrService.insert(Builder.of(BisInspRvgmOthrParam::new).with(BisInspRvgmOthrParam::setRgstrId, b.getId()).build()); bisInspRvgmSysService.insert(Builder.of(BisInspRvgmSysParam::new).with(BisInspRvgmSysParam::setRgstrId, b.getId()).build()); } @Override public String getType() { return BisInspEnum.RVGM.getValue(); } @Override public void cleanObjData(String objId) { BisInspRvgmRgstrParam rgstrParam = new BisInspRvgmRgstrParam(); rgstrParam.setObjId(objId); List list = this.bisInspRvgmRgstrDao.findList(rgstrParam); if (list.size() > 0) { String id = list.get(0).getId(); // 删除登记表 this.bisInspRvgmRgstrDao.delete(id); // 添加 子表 bisInspRvgmAdmService.deleteBy(Builder.of(BisInspRvgmAdmParam::new).with(BisInspRvgmAdmParam::setRgstrId, id).build()); bisInspRvgmBswkService.deleteBy(Builder.of(BisInspRvgmBswkParam::new).with(BisInspRvgmBswkParam::setRgstrId, id).build()); bisInspRvgmCostService.deleteBy(Builder.of(BisInspRvgmCostParam::new).with(BisInspRvgmCostParam::setRgstrId, id).build()); bisInspRvgmOthrService.deleteBy(Builder.of(BisInspRvgmOthrParam::new).with(BisInspRvgmOthrParam::setRgstrId, id).build()); bisInspRvgmSysService.deleteBy(Builder.of(BisInspRvgmSysParam::new).with(BisInspRvgmSysParam::setRgstrId, id).build()); } } @Override public Object findObjListByType(TypeParam typeParam) { return this.bisInspRvgmRgstrDao.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.bisInspRvgmRgstrDao.findPageList(typeParam); return new PageInfo<>(list); } @Override public void updateState(Map map) { BisInspRvgmRgstr 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); switch (MapUtils.getString(map, "param")) { case "sys": rgstr.setSysStat(MapUtils.getString(map, "state")); break; case "adm": rgstr.setAdmStat(MapUtils.getString(map, "state")); break; case "bswk": rgstr.setBswkStat(MapUtils.getString(map, "state")); break; case "cost": rgstr.setCostStat(MapUtils.getString(map, "state")); break; case "othr": rgstr.setOthrStat(MapUtils.getString(map, "state")); break; default: } update(rgstr); } } }