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.AttWtuntBaseDao; import cn.com.goldenwater.dcproj.dao.BisInspAllObjDao; import cn.com.goldenwater.dcproj.dao.BisInspPblmDao; import cn.com.goldenwater.dcproj.dao.BisInspWtcrrRgstrDao; import cn.com.goldenwater.dcproj.dto.BisInspWtcrrRgstrDto; import cn.com.goldenwater.dcproj.model.AttWtuntBase; import cn.com.goldenwater.dcproj.model.BisInspAllObj; import cn.com.goldenwater.dcproj.model.BisInspWtcrrRgstr; import cn.com.goldenwater.dcproj.model.BisInspWtcrrRgstrRev; import cn.com.goldenwater.dcproj.param.*; import cn.com.goldenwater.dcproj.service.AttWtuntBaseService; import cn.com.goldenwater.dcproj.service.BisInspObjStrategy; import cn.com.goldenwater.dcproj.service.BisInspWtcrrRgstrRevService; import cn.com.goldenwater.dcproj.service.BisInspWtcrrRgstrService; 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 2020-9-18 */ @Service @Transactional public class BisInspWtcrrRgstrServiceImpl extends AbstractCrudService implements BisInspWtcrrRgstrService, BisInspObjStrategy { @Autowired private BisInspWtcrrRgstrDao bisInspWtcrrRgstrDao; @Autowired private AttWtuntBaseDao attWtuntBaseDao; @Autowired private BisInspPblmDao bisInspPblmDao; @Autowired private BisInspAllObjDao bisInspAllObjDao; @Autowired private BisInspWtcrrRgstrRevService bisInspWtcrrRgstrRevService; @Autowired private AttWtuntBaseService attWtuntBaseService; public BisInspWtcrrRgstrServiceImpl(BisInspWtcrrRgstrDao bisInspWtcrrRgstrDao) { super(bisInspWtcrrRgstrDao); this.bisInspWtcrrRgstrDao = bisInspWtcrrRgstrDao; } @Override public int insert(BisInspWtcrrRgstr bisInspWtcrrRgstr) { String uuid = UuidUtil.uuid(); // 生成uuid bisInspWtcrrRgstr.setId(uuid); bisInspWtcrrRgstr.setIntm(new Date()); bisInspWtcrrRgstr.setUptm(new Date()); bisInspWtcrrRgstr.setDataStat("0"); return this.bisInspWtcrrRgstrDao.insert(bisInspWtcrrRgstr); } @Override public int update(BisInspWtcrrRgstr bisInspWtcrrRgstr) { bisInspWtcrrRgstr.setUptm(new Date()); return this.bisInspWtcrrRgstrDao.update(bisInspWtcrrRgstr); } @Override public int delete(String id) { return this.bisInspWtcrrRgstrDao.delete(id); } @Override public void insertObj(BisInspAllObj bisInspAllObj, String persId) { BisInspWtcrrRgstr b = new BisInspWtcrrRgstr(); AttWtuntBase base = attWtuntBaseDao.get(bisInspAllObj.getCode()); BeanUtils.copyProperties(base, b); //单位ID WTUNT_ID b.setWtuntId(base.getId()); //单位名称 UT_NAME //统一社会信用代码 //行政区划全称 AD_NAME *行政区划全称 //行政区编码 AD_CODE *行政区编码 //单位类型 UT_TYPE *单位类型(1:钢铁企业;2:高校;3:宾馆;4:2019整改) //单位性质 UT_PPT *单位性质(1:节水型;2:非节水型) //用水单位负责人 UT_LEAD *用水单位负责人 //用水单位联系人 UT_ATTN *用水单位联系人 //用水单位联系方式 UT_CONT *用水单位联系方式 //注册地址 SIGN_ADDR 注册地址 //单位地址 UT_ADDR *单位地址 //经度 CENTER_X 经度 //纬度 CENTER_Y 纬度 //高德经度 GD_X 高德经度 //高德纬度 GD_Y 高德纬度 //检查单位 CHK_UNIT *检查单位 //检查人员 CHK_PERS *检查人员 //检查时间 CHK_TM *检查时间 //节水载体复核表 WTUNT_STAT 节水载体复核表(0:未填报;1:未完成;2:已完成) //督查组ID GROUP_ID // 统一字段 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.setWtuntStat(CommonLabel.INIT_DATA); // 创建人 b.setPersId(persId); this.bisInspWtcrrRgstrDao.insert(b); /* 添加 子表 */ BisInspWtcrrRgstrRev rev = new BisInspWtcrrRgstrRev(); rev.setRgstrId(b.getId()); bisInspWtcrrRgstrRevService.insert(rev); } /** * 根据此 TYPE 切换不同的 SERVICE * * @return {@link BisInspEnum} */ @Override public String getType() { return BisInspEnum.WTCRR.getValue(); } @Override public void cleanObjData(String objId) { BisInspWtcrrRgstrParam rgstrParam = new BisInspWtcrrRgstrParam(); rgstrParam.setObjId(objId); List list = this.bisInspWtcrrRgstrDao.findList(rgstrParam); if (list.size() > 0) { String id = list.get(0).getId(); // 删除子表 BisInspWtcrrRgstrRevParam rgstrRevParam = new BisInspWtcrrRgstrRevParam(); rgstrRevParam.setRgstrId(id); bisInspWtcrrRgstrRevService.deleteBy(rgstrRevParam); // 删除登记表 this.bisInspWtcrrRgstrDao.delete(id); } // 删除问题 BisInspPblmParam bisInspPblmParam = new BisInspPblmParam(); bisInspPblmParam.setObjId(objId); bisInspPblmParam.setObjType(BisInspEnum.WTCRR.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.bisInspWtcrrRgstrDao.findWtuntPage(typeParam); return (PageInfo) new PageInfo(list); } @Override public Object findObjListByType(TypeParam typeParam) { return null; } @Override public BisInspWtcrrRgstr save(BisInspWtcrrRgstr bisInspWtcrrRgstr) { // 根据有无主键,来新增、更新信息 int ret = 0; if (StringUtils.isNotBlank(bisInspWtcrrRgstr.getRgstrId())) { // rgstrId 不为 空 时,传给ID bisInspWtcrrRgstr.setId(bisInspWtcrrRgstr.getRgstrId()); } if (StringUtils.isBlank(bisInspWtcrrRgstr.getId())) { if (StringUtils.isNotBlank(bisInspWtcrrRgstr.getObjId())) { BisInspWtcrrRgstrParam param = new BisInspWtcrrRgstrParam(); param.setObjId(bisInspWtcrrRgstr.getId()); BisInspWtcrrRgstr rgstr = getBy(param); // 如果没有注册表,添加 if (null == rgstr) { ret = insert(bisInspWtcrrRgstr); } else { bisInspWtcrrRgstr.setId(rgstr.getId()); bisInspWtcrrRgstr.setUptm(new Date()); update(bisInspWtcrrRgstr); // 跟新基础表 updateAttWtuntBase(bisInspWtcrrRgstr); } } } else { if (StringUtils.isBlank(bisInspWtcrrRgstr.getObjId())) { BisInspWtcrrRgstr rgstr = get(bisInspWtcrrRgstr.getId()); if (null != rgstr) { bisInspWtcrrRgstr.setObjId(rgstr.getObjId()); } } bisInspWtcrrRgstr.setUptm(new Date()); ret = update(bisInspWtcrrRgstr); // 跟新基础表 updateAttWtuntBase(bisInspWtcrrRgstr); } return bisInspWtcrrRgstr; } private void updateAttWtuntBase(BisInspWtcrrRgstr bisInspWtcrrRgstr) { // 清空特殊数据 if (StringUtils.isNotBlank(bisInspWtcrrRgstr.getObjId())) { AttWtuntBase attWtuntBase = attWtuntBaseService.getObjId(bisInspWtcrrRgstr.getObjId()); // 转换基础表ID String attWtuntBaseId = attWtuntBase.getId(); BeanUtils.copyProperties(bisInspWtcrrRgstr, attWtuntBase); attWtuntBase.setId(attWtuntBaseId); attWtuntBase.setIntm(null); attWtuntBaseService.update(attWtuntBase); } } }