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.CommonLabel; import cn.com.goldenwater.dcproj.constValue.SplitValue; import cn.com.goldenwater.dcproj.dao.BisInspAllObjDao; import cn.com.goldenwater.dcproj.dao.BisInspDrdmpRgstrDao; import cn.com.goldenwater.dcproj.dao.BisInspPblmDao; import cn.com.goldenwater.dcproj.dto.BisInspDrdmpRgstrDto; import cn.com.goldenwater.dcproj.model.*; import cn.com.goldenwater.dcproj.param.*; import cn.com.goldenwater.dcproj.service.AttDepBaseService; import cn.com.goldenwater.dcproj.service.BisInspDrdmpItemService; import cn.com.goldenwater.dcproj.service.BisInspDrdmpRgstrService; import cn.com.goldenwater.dcproj.service.BisInspObjStrategy; import cn.com.goldenwater.dcproj.utils.AdLevelUtil; 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.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; /** * @author lhc * @date 2021-1-5 */ @Service @Transactional public class BisInspDrdmpRgstrServiceImpl extends AbstractCrudService implements BisInspDrdmpRgstrService, BisInspObjStrategy { @Autowired private BisInspDrdmpRgstrDao bisInspDrdmpRgstrDao; @Autowired private BisInspDrdmpItemService bisInspDrdmpItemService; @Autowired private AttDepBaseService attDepBaseService; @Autowired private BisInspPblmDao bisInspPblmDao; @Autowired private BisInspAllObjDao bisInspAllObjDao; public BisInspDrdmpRgstrServiceImpl(BisInspDrdmpRgstrDao bisInspDrdmpRgstrDao) { super(bisInspDrdmpRgstrDao); this.bisInspDrdmpRgstrDao = bisInspDrdmpRgstrDao; } @Override public int insert(BisInspDrdmpRgstr bisInspDrdmpRgstr) { String uuid = UuidUtil.uuid(); bisInspDrdmpRgstr.setId(uuid); bisInspDrdmpRgstr.setIntm(new Date()); bisInspDrdmpRgstr.setUptm(new Date()); bisInspDrdmpRgstr.setDataStat("0"); return this.bisInspDrdmpRgstrDao.insert(bisInspDrdmpRgstr); } @Override public int update(BisInspDrdmpRgstr bisInspDrdmpRgstr) { bisInspDrdmpRgstr.setUptm(new Date()); int ret = this.bisInspDrdmpRgstrDao.update(bisInspDrdmpRgstr); // 更新基础表信息 updateAttBase(bisInspDrdmpRgstr); return ret; } private void updateAttBase(BisInspDrdmpRgstr bisInspDrdmpRgstr) { BisInspDrdmpRgstr rgstr = get(bisInspDrdmpRgstr.getId()); AttDepBase attDepBase = attDepBaseService.getObjId(rgstr.getObjId()); DepBase depBase = new DepBase(); BeanUtils.copyProperties(rgstr, depBase); BeanUtils.copyProperties(depBase, attDepBase); attDepBaseService.update(attDepBase); } @Override public int delete(String id) { return this.bisInspDrdmpRgstrDao.delete(id); } @Override public void insertObj(BisInspAllObj bisInspAllObj, String persId) { BisInspDrdmpRgstr b = new BisInspDrdmpRgstr(); AttDepBase base = attDepBaseService.get(bisInspAllObj.getCode()); BeanUtils.copyProperties(base, b); // 统一字段 rgstrId, objId b.setId(UuidUtil.uuid()); b.setObjId(bisInspAllObj.getObjId()); // 日期 Date d = new Date(); b.setIntm(d); b.setUptm(d); // 数据状态 默认为 0 b.setDataStat(CommonLabel.INIT_DATA); // 督查状态(0:未督查;1:督查中;2:已督查) b.setState(CommonLabel.INIT_DATA); // 子表状态(0:未督查;1:督查中;2:已督查) b.setItemState(CommonLabel.INIT_DATA); // 创建人 // b.setPersId(persId); /* 添加 登记表 */ this.bisInspDrdmpRgstrDao.insert(b); /* 添加 子表 */ BisInspDrdmpItem item = new BisInspDrdmpItem(); item.setRgstrId(b.getId()); bisInspDrdmpItemService.insert(item); } @Override public String getType() { return BisInspEnum.DRDMP.getValue(); } @Override public void cleanObjData(String objId) { BisInspDrdmpRgstrParam rgstrParam = new BisInspDrdmpRgstrParam(); rgstrParam.setObjId(objId); List list = this.bisInspDrdmpRgstrDao.findList(rgstrParam); if (list.size() > 0) { String id = list.get(0).getId(); // 删除子表 BisInspDrdmpItemParam wtupParam = new BisInspDrdmpItemParam(); wtupParam.setRgstrId(id); bisInspDrdmpItemService.deleteBy(wtupParam); // 删除登记表 this.bisInspDrdmpRgstrDao.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.bisInspDrdmpRgstrDao.findPageList(typeParam); return new PageInfo<>(list); } @Override public Object findObjListByType(TypeParam typeParam) { return this.bisInspDrdmpRgstrDao.findPageList(typeParam); } }