package cn.com.goldenwater.dcproj.service.impl; import cn.com.goldenwater.core.service.AbstractCrudService; import cn.com.goldenwater.dcproj.constValue.SplitValue; import cn.com.goldenwater.dcproj.dao.AttAdBaseDao; import cn.com.goldenwater.dcproj.dao.BisInspAllObjDao; import cn.com.goldenwater.dcproj.dao.BisInspQymtenDao; import cn.com.goldenwater.dcproj.dto.BisInspQymtenDto; import cn.com.goldenwater.dcproj.model.AttAdBase; import cn.com.goldenwater.dcproj.model.BisInspAllObj; import cn.com.goldenwater.dcproj.model.BisInspQymten; 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.Constant; import cn.com.goldenwater.id.util.UuidUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.apache.commons.collections.CollectionUtils; 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-7-19 */ @Service @Transactional public class BisInspQymtenServiceImpl extends AbstractCrudService implements BisInspQymtenService, BisInspObjStrategy { @Autowired private BisInspQymtenDao bisInspQymtenDao; @Autowired private AttAdBaseDao attAdBaseDao; @Autowired private BisInspAllObjDao bisInspAllObjDao; @Autowired private BisInspQymtenEffcService bisInspQymtenEffcService; @Autowired private BisInspQymtenMsrService bisInspQymtenMsrService; @Autowired private AttAdBaseService attAdBaseService; public BisInspQymtenServiceImpl(BisInspQymtenDao bisInspQymtenDao) { super(bisInspQymtenDao); this.bisInspQymtenDao = bisInspQymtenDao; } @Override public int insert(BisInspQymten bisInspQymten) { String uuid = UuidUtil.uuid(); // 生成uuid bisInspQymten.setId(uuid); bisInspQymten.setNm(bisInspQymten.getAdName()); bisInspQymten.setIntm(new Date()); bisInspQymten.setUptm(new Date()); bisInspQymten.setDataStat("0"); bisInspQymten.setState("0"); int ret = this.bisInspQymtenDao.insert(bisInspQymten); //子表 BisInspQymtenMsrParam msrParam = new BisInspQymtenMsrParam(); msrParam.setRgstrId(uuid); msrParam.setPersId(bisInspQymten.getPersId()); bisInspQymtenMsrService.insert(msrParam); return ret; } @Override public int update(BisInspQymten bisInspQymten) { bisInspQymten.setUptm(new Date()); return this.bisInspQymtenDao.update(bisInspQymten); } @Override public int delete(String id) { return this.bisInspQymtenDao.delete(id); } @Override public void insertObj(BisInspAllObj bisInspAllObj, String persId) { AttAdBase base = attAdBaseDao.get(bisInspAllObj.getCode()); BisInspQymten rgstr = new BisInspQymten(); BeanUtils.copyProperties(base, rgstr); rgstr.setNm(base.getAdName()); rgstr.setObjId(bisInspAllObj.getObjId()); rgstr.setPersId(persId); rgstr.setMsrState("0"); insert(rgstr); } @Override public String getType() { return "105"; } @Override public void cleanObjData(String objId) { BisInspQymtenParam param = new BisInspQymtenParam(); param.setObjId(objId); List list = bisInspQymtenDao.findList(param); if (CollectionUtils.isNotEmpty(list)) { String rgstrId = list.get(0).getId(); //删除名录表 BisInspAllObjParam bisInspAllObjParam = new BisInspAllObjParam(); bisInspAllObjParam.setObjId(objId); this.bisInspAllObjDao.deleteBy(bisInspAllObjParam); //登记表 bisInspQymtenDao.delete(rgstrId); //子表 BisInspQymtenMsrParam msrParam = new BisInspQymtenMsrParam(); msrParam.setRgstrId(rgstrId); bisInspQymtenMsrService.deleteBy(msrParam); BisInspQymtenEffcParam effcParam = new BisInspQymtenEffcParam(); effcParam.setRgstrId(rgstrId); bisInspQymtenEffcService.deleteBy(effcParam); } } @Override public PageInfo findObjPageByType(TypeParam typeParam, HttpServletResponse response) { return this.findQymtenPage(typeParam); } @Override public Object findObjListByType(TypeParam typeParam) { List list = bisInspQymtenDao.findQymtenPage(typeParam); if (list.size() > 0) { for (BisInspQymtenDto rgstrDto : list) { String adFullName = rgstrDto.getAdFullName(); if (StringUtils.isBlank(adFullName)) { continue; } if (adFullName.contains(SplitValue.HENG_SPLIT)) { String[] split = adFullName.split(SplitValue.HENG_SPLIT); if (split.length == 2) { rgstrDto.setProvince(split[0]); rgstrDto.setCity(split[1]); } if (split.length == 1) { rgstrDto.setProvince(split[0]); rgstrDto.setCity(""); } } else { rgstrDto.setProvince(adFullName); } } } return list; } @Override public PageInfo findQymtenPage(TypeParam param) { if (StringUtils.isNotBlank(param.getAdCode())) { param.setAdCode(String.valueOf(AdLevelUtil.SubAd(param.getAdCode()).get(SplitValue.SUBAD))); } if (StringUtils.isNotBlank(param.getAdCodes())) { param.setAdCodes(AdLevelUtil.getListAddvcd(param.getAdCodes())); } PageHelper.startPage(param); List list = bisInspQymtenDao.findQymtenPage(param); return new PageInfo<>(list); } @Override public void updateState(Map map) { BisInspQymten qymten = get(MapUtils.getString(map, "rgstrId")); if (Constant.STRING_TWO.equals(qymten.getState())) { return; } String param = MapUtils.getString(map, "param"); if ("msr".equals(param)) { if (StringUtils.isNotBlank(MapUtils.getString(map, "state"))) { qymten.setMsrState(MapUtils.getString(map, "state")); } qymten.setMsrScore(MapUtils.getDouble(map, "score")); qymten.setUptm(new Date()); qymten.setState(Constant.STRING_ONE); update(qymten); } } @Override public BisInspQymten get(String key) { BisInspQymten qymten = super.get(key); Optional.ofNullable(qymten).map(BisInspQymten::getAdCode).ifPresent(adCode -> { AttAdBase attAdBase = attAdBaseService.get(adCode); Optional.ofNullable(attAdBase).ifPresent(base -> { qymten.setAdFullName(base.getAdFullName()); }); }); return qymten; } }