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.BisInspAllRlationDao; import cn.com.goldenwater.dcproj.dao.BisInspPblmDao; import cn.com.goldenwater.dcproj.dao.BisInspWiuqhRgstrDao; import cn.com.goldenwater.dcproj.dto.BisInspWiuqhRgstrDto; import cn.com.goldenwater.dcproj.model.*; 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.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; /** * @author lhc * @date 2021-2-3 */ @Service @Transactional public class BisInspWiuqhRgstrServiceImpl extends AbstractCrudService implements BisInspWiuqhRgstrService, BisInspObjStrategy { @Autowired private BisInspWiuqhRgstrDao bisInspWiuqhRgstrDao; @Autowired private AttWiuqhBaseService attWiuqhBaseService; @Autowired private BisInspWiuqhFarmService bisInspWiuqhFarmService; @Autowired private BisInspWiuqhHyistService bisInspWiuqhHyistService; @Autowired private BisInspWiuqhIndusService bisInspWiuqhIndusService; @Autowired private BisInspWiuqhPubwtsService bisInspWiuqhPubwtsService; @Autowired private BisInspPblmDao bisInspPblmDao; @Autowired private BisInspAllObjDao bisInspAllObjDao; @Autowired private BisInspAllRlationDao bisInspAllRlationDao; public BisInspWiuqhRgstrServiceImpl(BisInspWiuqhRgstrDao bisInspWiuqhRgstrDao) { super(bisInspWiuqhRgstrDao); this.bisInspWiuqhRgstrDao = bisInspWiuqhRgstrDao; } @Override public int insert(BisInspWiuqhRgstr bisInspWiuqhRgstr) { bisInspWiuqhRgstr.setId(UuidUtil.uuid()); bisInspWiuqhRgstr.setIntm(new Date()); bisInspWiuqhRgstr.setUptm(new Date()); bisInspWiuqhRgstr.setDataStat("0"); return this.bisInspWiuqhRgstrDao.insert(bisInspWiuqhRgstr); } @Override public int update(BisInspWiuqhRgstr bisInspWiuqhRgstr) { bisInspWiuqhRgstr.setUptm(new Date()); int ret = this.bisInspWiuqhRgstrDao.update(bisInspWiuqhRgstr); // 更新基础表信息 updateAttBase(bisInspWiuqhRgstr); return ret; } private void updateAttBase(BisInspWiuqhRgstr bisInspWiuqhRgstr) { BisInspWiuqhRgstr rgstr = get(bisInspWiuqhRgstr.getId()); AttWiuqhBase attWiuqhBase = attWiuqhBaseService.getObjId(rgstr.getObjId()); WiuqhBase base = new WiuqhBase(); BeanUtils.copyProperties(rgstr, base); BeanUtils.copyProperties(base, attWiuqhBase); attWiuqhBaseService.update(attWiuqhBase); } @Override public int delete(String id) { return this.bisInspWiuqhRgstrDao.delete(id); } @Override public void updateState(Map map) { BisInspWiuqhRgstr 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 "farm": rgstr.setFarmState(MapUtils.getString(map, "state")); break; case "hyist": rgstr.setHyistState(MapUtils.getString(map, "state")); break; case "indus": rgstr.setIndusState(MapUtils.getString(map, "state")); break; case "pubwts": rgstr.setPubwtsState(MapUtils.getString(map, "state")); break; default: } update(rgstr); } } @Override public PageInfo listOfPage(TypeParam param, HttpServletResponse response) { return findObjPageByType(param, response); } @Override public void insertObj(BisInspAllObj bisInspAllObj, String persId) { BisInspWiuqhRgstr b = new BisInspWiuqhRgstr(); AttWiuqhBase base = attWiuqhBaseService.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.setFarmState(CommonLabel.INIT_DATA); b.setHyistState(CommonLabel.INIT_DATA); b.setPubwtsState(CommonLabel.INIT_DATA); b.setIndusState(CommonLabel.INIT_DATA); // 创建人 // b.setPersId(persId); /* 添加 登记表 */ this.bisInspWiuqhRgstrDao.insert(b); /* 添加 子表 */ bisInspWiuqhFarmService.insert(Builder.of(BisInspWiuqhFarm::new).with(BisInspWiuqhFarm::setRgstrId, b.getId()).build()); bisInspWiuqhHyistService.insert(Builder.of(BisInspWiuqhHyist::new).with(BisInspWiuqhHyist::setRgstrId, b.getId()).build()); bisInspWiuqhIndusService.insert(Builder.of(BisInspWiuqhIndus::new).with(BisInspWiuqhIndus::setRgstrId, b.getId()).build()); bisInspWiuqhPubwtsService.insert(Builder.of(BisInspWiuqhPubwts::new).with(BisInspWiuqhPubwts::setRgstrId, b.getId()).build()); } @Override public String getType() { return BisInspEnum.WIUQH.getValue(); } @Override public void cleanObjData(String objId) { BisInspWiuqhRgstrParam rgstrParam = new BisInspWiuqhRgstrParam(); rgstrParam.setObjId(objId); List list = this.bisInspWiuqhRgstrDao.findList(rgstrParam); if (list.size() > 0) { String id = list.get(0).getId(); // 删除子表 bisInspWiuqhFarmService.deleteBy(Builder.of(BisInspWiuqhFarmParam::new).with(BisInspWiuqhFarmParam::setRgstrId, id).build()); bisInspWiuqhHyistService.deleteBy(Builder.of(BisInspWiuqhHyistParam::new).with(BisInspWiuqhHyistParam::setRgstrId, id).build()); bisInspWiuqhIndusService.deleteBy(Builder.of(BisInspWiuqhIndusParam::new).with(BisInspWiuqhIndusParam::setRgstrId, id).build()); bisInspWiuqhPubwtsService.deleteBy(Builder.of(BisInspWiuqhPubwtsParam::new).with(BisInspWiuqhPubwtsParam::setRgstrId, id).build()); // 删除登记表 this.bisInspWiuqhRgstrDao.delete(id); } // 删除问题 BisInspPblmParam bisInspPblmParam = new BisInspPblmParam(); bisInspPblmParam.setObjId(objId); bisInspPblmParam.setObjType(BisInspEnum.WRWS.getValue()); bisInspPblmDao.deleteBy(bisInspPblmParam); // 删除对象名录表 BisInspAllObjParam bisInspAllObjParam = new BisInspAllObjParam(); bisInspAllObjParam.setObjId(objId); bisInspAllObjDao.deleteBy(bisInspAllObjParam); } @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); String[] groupIds = bisInspAllRlationDao.getIdByPersid(Builder .of(BisInspAllRlationParam::new) .with(BisInspAllRlationParam::setPersid, typeParam.getPresId()) .with(BisInspAllRlationParam::setpType, typeParam.getpType()) .build()); typeParam.setGroupIds(groupIds); List list = this.bisInspWiuqhRgstrDao.findPageList(typeParam); return (PageInfo) new PageInfo(list); } @Override public Object findObjListByType(TypeParam typeParam) { return this.bisInspWiuqhRgstrDao.findPageList(typeParam); } }