package cn.com.goldenwater.dcproj.service.impl; 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.AttFundBaseDao; import cn.com.goldenwater.dcproj.dao.BisInspAllObjDao; import cn.com.goldenwater.dcproj.dao.BisInspFundRgstrDao; import cn.com.goldenwater.dcproj.dao.BisInspPblmDao; import cn.com.goldenwater.dcproj.dto.BisInspFundRgstrDto; import cn.com.goldenwater.dcproj.model.*; import cn.com.goldenwater.dcproj.param.*; import cn.com.goldenwater.dcproj.service.*; 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.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.List; import java.util.Date; import java.util.Map; /** * @author lisen * @date 2021-6-19 */ @Service @Transactional public class BisInspFundRgstrServiceImpl extends AbstractCrudService implements BisInspFundRgstrService , BisInspObjStrategy { @Autowired private BisInspFundRgstrDao bisInspFundRgstrDao; @Autowired private AttFundBaseService attFundBaseService; @Autowired private AttFundBaseDao attFundBaseDao; @Autowired private BisInspFundChecService bisInspFundChecService; @Autowired private BisInspFundFinaService bisInspFundFinaService; @Autowired private BisInspFundUseService bisInspFundUseService; @Autowired private BisInspPblmDao bisInspPblmDao; @Autowired private BisInspAllObjDao bisInspAllObjDao; public BisInspFundRgstrServiceImpl(BisInspFundRgstrDao bisInspFundRgstrDao) { super(bisInspFundRgstrDao); this.bisInspFundRgstrDao = bisInspFundRgstrDao; } @Override public int insert(BisInspFundRgstr bisInspFundRgstr) { String uuid = UuidUtil.uuid(); // 生成uuid bisInspFundRgstr.setId(uuid); bisInspFundRgstr.setIntm(new Date()); bisInspFundRgstr.setUptm(new Date()); bisInspFundRgstr.setDataStat("0"); return this.bisInspFundRgstrDao.insert(bisInspFundRgstr); } @Override public int update(BisInspFundRgstr bisInspFundRgstr) { bisInspFundRgstr.setUptm(new Date()); return this.bisInspFundRgstrDao.update(bisInspFundRgstr); } @Override public int delete(String id) { return this.bisInspFundRgstrDao.delete(id); } @Override public BisInspFundRgstr save(BisInspFundRgstr bisInspFundRgstr) { // 根据有无主键,来新增、更新信息 int ret = 0; if (StringUtils.isNotBlank(bisInspFundRgstr.getRgstrId())) { // rgstrId 不为 空 时,传给ID bisInspFundRgstr.setId(bisInspFundRgstr.getRgstrId()); } if (StringUtils.isBlank(bisInspFundRgstr.getId())) { if (StringUtils.isNotBlank(bisInspFundRgstr.getObjId())) { BisInspFundRgstrParam param = new BisInspFundRgstrParam(); param.setObjId(bisInspFundRgstr.getId()); BisInspFundRgstr rgstr = getBy(param); // 如果没有注册表,添加 if (null == rgstr) { ret = insert(bisInspFundRgstr); } else { bisInspFundRgstr.setId(rgstr.getId()); bisInspFundRgstr.setUptm(new Date()); update(bisInspFundRgstr); // 更新基础表 updateAttFundBase(bisInspFundRgstr); } } } else { if (StringUtils.isBlank(bisInspFundRgstr.getObjId())) { BisInspFundRgstr rgstr = get(bisInspFundRgstr.getId()); if (null != rgstr) { bisInspFundRgstr.setObjId(rgstr.getObjId()); } } bisInspFundRgstr.setUptm(new Date()); update(bisInspFundRgstr); // 更新基础表 updateAttFundBase(bisInspFundRgstr); } return bisInspFundRgstr; } @Override public PageInfo findFundPageInfo(TypeParam typeParam) { PageHelper.startPage(typeParam.getPageNum(),typeParam.getPageSize()); List list = bisInspFundRgstrDao.findFundPageInfo(typeParam); return new PageInfo(list); } @Override public void updateState(Map map) { BisInspFundRgstr 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 "chec": rgstr.setFundChecState(MapUtils.getString(map, "state")); break; case "fina": rgstr.setFundFinaState(MapUtils.getString(map, "state")); break; case "use": rgstr.setFundUseState(MapUtils.getString(map, "state")); break; default: } update(rgstr); } } private void updateAttFundBase(BisInspFundRgstr bisInspFundRgstr) { // 清空特殊数据 if (StringUtils.isNotBlank(bisInspFundRgstr.getObjId())) { AttFundBase attFundBase = attFundBaseService.getObjId(bisInspFundRgstr.getObjId()); // 转换基础表ID String attCdepBaseId = attFundBase.getId(); BeanUtils.copyProperties(bisInspFundRgstr, attFundBase); attFundBase.setId(attCdepBaseId); attFundBase.setIntm(null); attFundBaseService.update(attFundBase); } } @Override public void insertObj(BisInspAllObj bisInspAllObj, String persId) { BisInspFundRgstr rgstr = new BisInspFundRgstr(); AttFundBase base = attFundBaseDao.get(bisInspAllObj.getCode()); BeanUtils.copyProperties(base, rgstr); // 统一字段 rgstrId, objId rgstr.setId(UuidUtil.uuid()); rgstr.setObjId(bisInspAllObj.getObjId()); rgstr.setGroupId(bisInspAllObj.getId()); rgstr.setProvince(bisInspAllObj.getProvince()); // 日期 Date d = new Date(); rgstr.setIntm(d); rgstr.setUptm(d); // 数据状态 默认为 0 rgstr.setDataStat(CommonLabel.INIT_DATA); // 督查状态(0:未督查;1:督查中;2:已督查) rgstr.setState(CommonLabel.INIT_DATA); // 子表状态(0:未督查;1:督查中;2:已督查) rgstr.setFundChecState(CommonLabel.INIT_DATA); rgstr.setFundFinaState(CommonLabel.INIT_DATA); rgstr.setFundUseState(CommonLabel.INIT_DATA); // 创建人 rgstr.setPersId(persId); /* 添加 登记表 */ this.bisInspFundRgstrDao.insert(rgstr); /* 添加 子表 */ BisInspFundChec bisInspFundChec = new BisInspFundChec(); bisInspFundChec.setRgstrId(rgstr.getId()); bisInspFundChecService.insert(bisInspFundChec); BisInspFundFina bisInspFundFina = new BisInspFundFina(); bisInspFundFina.setRgstrId(rgstr.getId()); bisInspFundFinaService.insert(bisInspFundFina); BisInspFundUse bisInspFundUse = new BisInspFundUse(); bisInspFundUse.setRgstrId(rgstr.getId()); bisInspFundUseService.insert(bisInspFundUse); } @Override public String getType() { return BisInspEnum.FUND.getValue(); } @Override public void cleanObjData(String objId) { BisInspFundRgstrParam rgstrParam = new BisInspFundRgstrParam(); rgstrParam.setObjId(objId); List list = this.bisInspFundRgstrDao.findList(rgstrParam); if (list.size() > 0) { String id = list.get(0).getId(); // 删除子表 BisInspFundChecParam bisInspFundChecParam = new BisInspFundChecParam(); bisInspFundChecParam.setRgstrId(id); bisInspFundChecService.deleteBy(bisInspFundChecParam); BisInspFundFinaParam bisInspFundFinaParam = new BisInspFundFinaParam(); bisInspFundFinaParam.setRgstrId(id); bisInspFundFinaService.deleteBy(bisInspFundFinaParam); BisInspFundUseParam bisInspFundUseParam = new BisInspFundUseParam(); bisInspFundUseParam.setRgstrId(id); bisInspFundUseService.deleteBy(bisInspFundUseParam); // 删除登记表 this.bisInspFundRgstrDao.delete(id); } // 删除问题 BisInspPblmParam bisInspPblmParam = new BisInspPblmParam(); bisInspPblmParam.setObjId(objId); bisInspPblmParam.setObjType(BisInspEnum.FUND.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); List list = this.bisInspFundRgstrDao.findPageList(typeParam); return (PageInfo) new PageInfo(list); } @Override public Object findObjListByType(TypeParam typeParam) { return this.bisInspFundRgstrDao.findPageList(typeParam); } }