package cn.com.goldenwater.dcproj.service.impl.wdtst; 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.constValue.StateEnum; import cn.com.goldenwater.dcproj.dao.BisInspAllObjDao; import cn.com.goldenwater.dcproj.dao.BisInspPblmDao; import cn.com.goldenwater.dcproj.dao.BisInspWtdstDao; import cn.com.goldenwater.dcproj.dao.BisInspWtdstTrackDao; import cn.com.goldenwater.dcproj.dto.BisInspWtdstBaseDto; import cn.com.goldenwater.dcproj.dto.BisInspWtdstDetailDto; import cn.com.goldenwater.dcproj.model.BisInspAllObj; import cn.com.goldenwater.dcproj.model.BisInspWtdst; import cn.com.goldenwater.dcproj.model.BisInspWtdstTrack; import cn.com.goldenwater.dcproj.param.BisInspAllObjParam; import cn.com.goldenwater.dcproj.param.BisInspPblmParam; import cn.com.goldenwater.dcproj.param.BisInspWtdstDtoListParam; import cn.com.goldenwater.dcproj.param.BisInspWtdstTrackParam; import cn.com.goldenwater.dcproj.param.TypeParam; import cn.com.goldenwater.dcproj.service.BisInspObjStrategy; import cn.com.goldenwater.dcproj.service.BisInspPblmService; import cn.com.goldenwater.dcproj.service.BisInspWtdstTrackService; import cn.com.goldenwater.dcproj.utils.AdLevelUtil; import cn.com.goldenwater.dcproj.utils.DateUtils; import cn.com.goldenwater.id.util.UuidUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; 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.ArrayList; import java.util.Date; import java.util.List; /** * @author 81229 */ @Service @Transactional(rollbackFor = Exception.class) public class BisInspWtdstTrackServiceImpl extends AbstractCrudService implements BisInspWtdstTrackService ,BisInspObjStrategy { private Logger logger = LoggerFactory.getLogger(getClass()); @Autowired private BisInspWtdstTrackDao bisInspWtdstTrackDao; @Autowired private BisInspWtdstDao bisInspWtdstDao; @Autowired private BisInspAllObjDao bisInspAllObjDao; @Autowired private BisInspPblmDao bisInspPblmDao; @Autowired private BisInspPblmService bisInspPblmService; public BisInspWtdstTrackServiceImpl(BisInspWtdstTrackDao bisInspWtdstTrackDao) { super(bisInspWtdstTrackDao); this.bisInspWtdstTrackDao = bisInspWtdstTrackDao; } @Override public String add(BisInspWtdstTrack p) throws Exception { if (StringUtils.isBlank(p.getObjId())) { throw new Exception("objId 不能为空!"); } if (StringUtils.isBlank(p.getWtdstId())) { BisInspAllObjParam ap = new BisInspAllObjParam(); ap.setObjId(p.getObjId()); BisInspAllObj bisInspAllObj = bisInspAllObjDao.getBy(ap); if (bisInspAllObj != null) { p.setWtdstId(bisInspAllObj.getCode()); } else { throw new Exception("wtdstId 不能为空!"); } } String uuid = UuidUtil.uuid(); String now = DateUtils.getTodayYMDHMS(); p.setIntm(new Date()); p.setUptm(new Date()); p.setTrackId(uuid); this.insert(p); if (StringUtils.isNotBlank(p.getWtdstId())) { BisInspWtdst bisInspWtdst = new BisInspWtdst(); bisInspWtdst.setWtdstId(p.getWtdstId()); bisInspWtdst.setWtdstState(p.getWkstate()); bisInspWtdst.setPlanRcvrTm(p.getPlanTm()); bisInspWtdst.setWtdstDtle(p.getDisContent()); bisInspWtdst.setUptm(new Date()); bisInspWtdstDao.update(bisInspWtdst); } return uuid; } @Override public PageInfo findPageByType(TypeParam typeParam) { if (StringUtils.isNotBlank(typeParam.getAdCode())) { typeParam.setAdCode(String.valueOf(AdLevelUtil.SubAd(typeParam.getAdCode()).get(SplitValue.SUBAD))); } PageHelper.startPage(typeParam); List list = bisInspWtdstTrackDao.findPageByType(typeParam); PageInfo pageInfo = new PageInfo(list); return pageInfo; } @Override public List findListByType(TypeParam typeParam) { List list = bisInspWtdstTrackDao.findPageByType(typeParam); if (list == null) { return new ArrayList<>(); } return list; } @Override public int modify(BisInspWtdstTrack p) throws Exception { String now = DateUtils.getTodayYMDHMS(); p.setUptm(new Date()); if (StringUtils.isBlank(p.getTrackId())) { throw new Exception("trackId 不能为空!"); } if (StringUtils.isBlank(p.getObjId())) { throw new Exception("objId 不能为空!"); } // if (StringUtils.isBlank(p.getWtdstId())) { // BisInspAllObjParam ap = new BisInspAllObjParam(); // ap.setObjId(p.getObjId()); // BisInspAllObj bisInspAllObj = bisInspAllObjDao.getBy(ap); // if (bisInspAllObj != null) { // p.setWtdstId(bisInspAllObj.getCode()); // } else { // throw new Exception("wtdstId 不能为空!"); // } // } int ret = bisInspWtdstTrackDao.update(p); // if (StringUtils.isNotBlank(p.getWtdstId())) { // BisInspWtdst bisInspWtdst = new BisInspWtdst(); // bisInspWtdst.setWtdstId(p.getWtdstId()); // bisInspWtdst.setWtdstState(p.getWkstate()); // bisInspWtdst.setPlanRcvrTm(p.getPlanTm()); // bisInspWtdst.setWtdstDtle(p.getDisContent()); // bisInspWtdst.setUptm(new Date()); // bisInspWtdstDao.update(bisInspWtdst); // } // 更新问题状态 updatePblmState(p); return ret; } private void updatePblmState(BisInspWtdstTrack rgstr) { BisInspWtdstTrack r = get(rgstr.getWtdstId()); if (r == null) { return; } logger.info("BisInspWtdstTrack:" + r.toString()); bisInspPblmService.updateStateByObjId(r.getObjId(), rgstr.getState()); } @Override public PageInfo queryListByPage(BisInspWtdstTrackParam p) throws Exception { PageHelper.startPage(p.getPageNum(), p.getPageSize()); List list = bisInspWtdstTrackDao.findList(p); return new PageInfo(list); } @Override public List queryList(BisInspWtdstTrackParam p) throws Exception { List list = bisInspWtdstTrackDao.findList(p); return list; } @Override public List queryListByPersId(String id,String orgId) throws Exception { List list = bisInspWtdstTrackDao.queryListByPersId(id,orgId); return list; } @Override public BisInspWtdstTrack getByObjId(String id) throws Exception { BisInspWtdstTrackParam param = new BisInspWtdstTrackParam(); param.setObjId(id); BisInspWtdstTrack bisInspWtdstTrack = bisInspWtdstTrackDao.getBy(param); if (bisInspWtdstTrack == null) { BisInspWtdstDtoListParam bisInspWtdstDtoListParam = new BisInspWtdstDtoListParam(); bisInspWtdstDtoListParam.setObjId(id); List list = bisInspWtdstDao.findDtoList(bisInspWtdstDtoListParam); if (list != null && list.size() > 0) { BisInspWtdstDetailDto wtdstDetailDto = list.get(0); BisInspWtdstTrack p = new BisInspWtdstTrack(); String uuid1 = UuidUtil.uuid(); p.setIntm(new Date()); p.setUptm(new Date()); p.setTrackId(uuid1); p.setObjId(wtdstDetailDto.getObjId()); p.setObjNm(wtdstDetailDto.getWtdstNm()); p.setLoac(wtdstDetailDto.getLocNm()); p.setDisContent(wtdstDetailDto.getDisContent()); // p.setPlanTm(wtdstDetailDto.getPlanTm()); p.setDataStat("0"); p.setAdCode(wtdstDetailDto.getLocAd()); p.setCost(wtdstDetailDto.getCost()); p.setPlanRcvr(wtdstDetailDto.getPlanRcvr()); p.setOrgId(wtdstDetailDto.getOrgId()); this.insert(p); bisInspWtdstTrack = p; } } return bisInspWtdstTrack; } @Override public int insert(BisInspWtdstTrack b) { int ret = 1; BisInspWtdstTrackParam bisInspWtdstTrackParam = new BisInspWtdstTrackParam(); bisInspWtdstTrackParam.setObjId(b.getObjId()); List list = bisInspWtdstTrackDao.findList(bisInspWtdstTrackParam); if (list == null || list.size() == 0) { ret = bisInspWtdstTrackDao.insert(b); } return ret; } @Override public void insertObj(BisInspAllObj bisInspAllObj, String persId) { BisInspWtdst bisInspWtdst = bisInspWtdstDao.get(bisInspAllObj.getCode()); BisInspWtdstTrack p = new BisInspWtdstTrack(); BeanUtils.copyProperties(bisInspWtdst, p); String uuid1 = UuidUtil.uuid(); String now = DateUtils.getTodayYMDHMS(); p.setIntm(new Date()); p.setUptm(new Date()); p.setTrackId(uuid1); p.setObjId(bisInspAllObj.getObjId()); p.setObjNm(bisInspAllObj.getNm()); p.setLoac(bisInspWtdst.getLocNm()); p.setDisContent(bisInspWtdst.getWtdstDtle()); p.setPlanTm(bisInspWtdst.getPlanRcvrTm()); p.setAdCode(bisInspWtdst.getLocAd()); p.setDataStat(StateEnum.NOWASTSTATE.getKey()); bisInspWtdstTrackDao.insert(p); } @Override public String getType() { return BisInspEnum.TRACK.getValue(); } @Override public void cleanObjData(String objId) { BisInspWtdstTrackParam bisInspWtdstTrackParam = new BisInspWtdstTrackParam(); bisInspWtdstTrackParam.setObjId(objId); List list = this.bisInspWtdstTrackDao.findList(bisInspWtdstTrackParam); if (list.size() > 0) { String id = list.get(0).getTrackId(); BisInspPblmParam bisInspPblmParam = new BisInspPblmParam(); bisInspPblmParam.setRegid(id); bisInspPblmParam.setObjType(BisInspEnum.TRACK.getValue()); this.bisInspPblmDao.deleteBy(bisInspPblmParam);//删除问题 this.bisInspWtdstTrackDao.delete(id);//删除登记表 BisInspAllObjParam bisInspAllObjParam = new BisInspAllObjParam(); bisInspAllObjParam.setObjId(objId); this.bisInspAllObjDao.deleteBy(bisInspAllObjParam); } else { BisInspAllObjParam bisInspAllObjParam = new BisInspAllObjParam(); bisInspAllObjParam.setObjId(objId); this.bisInspAllObjDao.deleteBy(bisInspAllObjParam); } } @Override public PageInfo findObjPageByType(TypeParam typeParam, HttpServletResponse response) { return this.findPageByType(typeParam); } @Override public Object findObjListByType(TypeParam typeParam) { return this.findListByType(typeParam); } }