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.AttAdBaseDao; import cn.com.goldenwater.dcproj.dao.BisInspAllObjDao; import cn.com.goldenwater.dcproj.dao.BisInspQaSdDao; import cn.com.goldenwater.dcproj.dto.BisInspQaSdDto; import cn.com.goldenwater.dcproj.model.AttAdBase; import cn.com.goldenwater.dcproj.model.BisInspAllObj; import cn.com.goldenwater.dcproj.model.BisInspQaSd; import cn.com.goldenwater.dcproj.param.*; import cn.com.goldenwater.dcproj.service.AttAdBaseService; import cn.com.goldenwater.dcproj.service.BisInspObjStrategy; import cn.com.goldenwater.dcproj.service.BisInspQaScoreSdService; import cn.com.goldenwater.dcproj.service.BisInspQaSdService; import cn.com.goldenwater.core.service.AbstractCrudService; import cn.com.goldenwater.dcproj.utils.AdLevelUtil; import cn.com.goldenwater.dcproj.utils.Constant; 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 cn.com.goldenwater.id.util.UuidUtil; import javax.servlet.http.HttpServletResponse; import java.util.*; /** * @author lhc * @date 2024-4-7 */ @Service @Transactional public class BisInspQaSdServiceImpl extends AbstractCrudService implements BisInspQaSdService, BisInspObjStrategy { @Autowired private BisInspQaSdDao bisInspQaSdDao; @Autowired private AttAdBaseDao attAdBaseDao; @Autowired private BisInspAllObjDao bisInspAllObjDao; @Autowired private BisInspQaScoreSdService bisInspQaScoreSdService; @Autowired private AttAdBaseService attAdBaseService; public BisInspQaSdServiceImpl(BisInspQaSdDao bisInspQaSdDao) { super(bisInspQaSdDao); this.bisInspQaSdDao = bisInspQaSdDao; } @Override public int insert(BisInspQaSd bisInspQaSd) { // 生成uuid String uuid = UuidUtil.uuid(); bisInspQaSd.setId(uuid); bisInspQaSd.setNm(bisInspQaSd.getAdName()); bisInspQaSd.setIntm(new Date()); bisInspQaSd.setUptm(new Date()); bisInspQaSd.setDataStat("0"); bisInspQaSd.setState("0"); int ret = this.bisInspQaSdDao.insert(bisInspQaSd); //子表 BisInspQaScoreSdParam scoreSdParam = new BisInspQaScoreSdParam(); scoreSdParam.setRgstrId(uuid); scoreSdParam.setPersId(bisInspQaSd.getPersId()); bisInspQaScoreSdService.insert(scoreSdParam); return ret; } @Override public int update(BisInspQaSd bisInspQaSd) { bisInspQaSd.setUptm(new Date()); return this.bisInspQaSdDao.update(bisInspQaSd); } @Override public int delete(String id) { return this.bisInspQaSdDao.delete(id); } @Override public void insertObj(BisInspAllObj bisInspAllObj, String persId) { AttAdBase base = attAdBaseDao.get(bisInspAllObj.getCode()); BisInspQaSd rgstr = new BisInspQaSd(); BeanUtils.copyProperties(base, rgstr); rgstr.setNm(base.getAdName()); rgstr.setObjId(bisInspAllObj.getObjId()); rgstr.setPersId(persId); insert(rgstr); } @Override public String getType() { return BisInspEnum.SDQA.getValue(); } @Override public void cleanObjData(String objId) { BisInspQaSdParam param = new BisInspQaSdParam(); param.setObjId(objId); List list = bisInspQaSdDao.findList(param); if (CollectionUtils.isNotEmpty(list)) { String rgstrId = list.get(0).getId(); //删除名录表 BisInspAllObjParam bisInspAllObjParam = new BisInspAllObjParam(); bisInspAllObjParam.setObjId(objId); this.bisInspAllObjDao.deleteBy(bisInspAllObjParam); //登记表 bisInspQaSdDao.delete(rgstrId); //子表 BisInspQaScoreSdParam scoreParam = new BisInspQaScoreSdParam(); scoreParam.setRgstrId(rgstrId); bisInspQaScoreSdService.deleteBy(scoreParam); } } @Override public PageInfo findObjPageByType(TypeParam typeParam, HttpServletResponse response) { return this.findQaSdPage(typeParam); } @Override public Object findObjListByType(TypeParam param) { List list = bisInspQaSdDao.findQaSdPage(param); if (list.size() > 0) { for (BisInspQaSdDto qaSdDto : list) { String adFullName = qaSdDto.getAdFullName(); if (StringUtils.isBlank(adFullName)) { continue; } if (adFullName.contains(SplitValue.HENG_SPLIT)) { String[] split = adFullName.split(SplitValue.HENG_SPLIT); if (split.length == 2) { qaSdDto.setProvince(split[0]); qaSdDto.setCity(split[1]); } if (split.length == 1) { qaSdDto.setProvince(split[0]); qaSdDto.setCity(""); } } else { qaSdDto.setProvince(adFullName); } } } return list; } @Override public PageInfo findQaSdPage(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 = bisInspQaSdDao.findQaSdPage(param); return new PageInfo<>(list); } @Override public void updateState(Map map) { BisInspQaSd inspQaSd = get(MapUtils.getString(map, "rgstrId")); String param = MapUtils.getString(map, "param"); if ("qa".equals(param)) { inspQaSd.setTotalScore(MapUtils.getLong(map, "total")); inspQaSd.setState(Constant.STRING_ONE); update(inspQaSd); } } @Override public BisInspQaSd get(String key) { BisInspQaSd qymten = super.get(key); Optional.ofNullable(qymten).map(BisInspQaSd::getAdCode).ifPresent(adCode -> { AttAdBase attAdBase = attAdBaseService.get(adCode); Optional.ofNullable(attAdBase).ifPresent(base -> { qymten.setAdName(base.getAdFullName()); }); }); return qymten; } }