DgArchivesReplenishServiceImpl.java 7.4 KB
package com.pashanhoo.replenish.service.impl;


import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.pashanhoo.archive.entity.DgArchivesConverter;
import com.pashanhoo.archive.entity.DgArchivesDO;
import com.pashanhoo.archive.entity.vo.AddDgArchivesRequest;
import com.pashanhoo.archive.entity.vo.UpdateDgArchivesRequest;
import com.pashanhoo.archive.service.DgArchivesService;
import com.pashanhoo.bdcdy.entity.DgBdcdyConverter;
import com.pashanhoo.bdcdy.entity.DgBdcdyDO;
import com.pashanhoo.bdcdy.entity.vo.AddDgBdcdyRequest;
import com.pashanhoo.bdcdy.entity.vo.UpdateDgBdcdyRequest;
import com.pashanhoo.bdcdy.service.DgBdcdyService;
import com.pashanhoo.business.entity.DgBusinessConverter;
import com.pashanhoo.business.entity.DgBusinessDO;
import com.pashanhoo.business.entity.vo.AddDgBusinessRequest;
import com.pashanhoo.business.entity.vo.UpdateDgBusinessRequest;
import com.pashanhoo.business.service.DgBusinessService;
import com.pashanhoo.common.Result;
import com.pashanhoo.common.util.SysCode.SysCodeUtil;
import com.pashanhoo.common.util.SysCode.SysCodeVO;
import com.pashanhoo.replenish.entity.DgArchivesReplenishConverter;
import com.pashanhoo.replenish.entity.DgArchivesReplenishDO;
import com.pashanhoo.replenish.entity.vo.*;
import com.pashanhoo.replenish.mapper.DgArchivesReplenishMapper;
import com.pashanhoo.replenish.service.DgArchivesReplenishService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.Date;
import java.util.List;

/**
 * <p>
 * 档案补录信息 服务实现类
 * </p>
 *
 * @author
 * @since 2021-11-05
 */
@Service
public class DgArchivesReplenishServiceImpl extends ServiceImpl<DgArchivesReplenishMapper, DgArchivesReplenishDO> implements DgArchivesReplenishService {

    @Autowired
    private DgArchivesReplenishConverter dgarchivesreplenishConverter;

    @Autowired
    private DgArchivesReplenishMapper dgarchivesreplenishMapper;

    @Autowired
    private DgArchivesService dgArchivesService;

    @Autowired
    private DgArchivesConverter dgArchivesConverter;

    @Autowired
    private DgBusinessService dgBusinessService;

    @Autowired
    private DgBusinessConverter dgBusinessConverter;

    @Autowired
    private DgBdcdyService dgBdcdyService;

    @Autowired
    private DgBdcdyConverter dgBdcdyConverter;

    @Autowired
    SysCodeUtil sysCodeUtil;

    /**
     * 案卷基本信息状态补录中
     */
    private final Integer REPLENISHING = 2;

    /**
     * 新增记录
     *
     * @param request
     * @return
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean insertDgArchivesReplenish(AddDgArchivesReplenishRequest request) {

        //生成案卷标识码
        String bsmArchive = IdWorker.get32UUID();

        //案卷基本信息
        AddDgArchivesRequest addDgArchivesRequest = request.getAddDgArchivesRequest();
        addDgArchivesRequest.setBsmArchives(bsmArchive);
        addDgArchivesRequest.setDazt(REPLENISHING);
        DgArchivesDO dgArchivesDO = dgArchivesConverter.addRequest2DO(addDgArchivesRequest);
        dgArchivesService.save(dgArchivesDO);

        //业务信息
        AddDgBusinessRequest addDgBusinessRequest = request.getAddDgBusinessRequest();
        addDgBusinessRequest.setBsmArchives(bsmArchive);
        DgBusinessDO dgBusinessDO = dgBusinessConverter.addRequest2DO(addDgBusinessRequest);
        dgBusinessService.save(dgBusinessDO);

        //不动产单元信息
        List<AddDgBdcdyRequest> addDgBdcdyRequests = request.getAddDgBdcdyRequests();
        for (AddDgBdcdyRequest addDgBdcdyRequest : addDgBdcdyRequests) {
            addDgBdcdyRequest.setBsmArchives(bsmArchive);
        }
        List<DgBdcdyDO> dgBdcdyDOS = dgBdcdyConverter.addRequestListDO(addDgBdcdyRequests);
        dgBdcdyService.saveBatch(dgBdcdyDOS);

        //档案补录记录
        DgArchivesReplenishDO dgArchivesReplenishDO = new DgArchivesReplenishDO();
        dgArchivesReplenishDO.setBsmArchives(bsmArchive);
        //获取补录编号
        SysCodeVO sysCodeVO = new SysCodeVO();
        sysCodeVO.setTaskno("BL" + DateUtil.year(DateUtil.date()));
        sysCodeVO.setCtype("sequence");
        sysCodeVO.setTaskname("补录序列号");
        sysCodeVO.setTaskchild(5);
        String blbh = sysCodeUtil.getSequence(sysCodeVO);
        dgArchivesReplenishDO.setBlbh(blbh);
        /******************************************************/
        dgArchivesReplenishDO.setCreateTime(DateTime.now());
        dgArchivesReplenishDO.setCreater(null);
        dgArchivesReplenishDO.setBz(null);
        dgArchivesReplenishDO.setState("1");
        dgArchivesReplenishDO.setGdsj(null);
        return this.save(dgArchivesReplenishDO);
    }

    /**
     * 根据主键查询记录详情
     *
     * @param id
     * @return
     */
    @Override
    public DgArchivesReplenishDetailVO getDgArchivesReplenishDetailById(String id) {
        DgArchivesReplenishDO dgarchivesreplenishDO = this.getById(id);
        return dgarchivesreplenishConverter.do2DetailVO(dgarchivesreplenishDO);
    }

    /**
     * 修改单条记录
     *
     * @param request
     * @return
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean updateDgArchivesReplenish(UpdateDgArchivesReplenishRequest request) {

        //修改案卷基本信息
        UpdateDgArchivesRequest updateDgArchivesRequest = request.getUpdateDgArchivesRequest();
        DgArchivesDO dgArchivesDO = dgArchivesConverter.updateRequest2DO(updateDgArchivesRequest);
        String bsmArchives = dgArchivesDO.getBsmArchives();
        dgArchivesService.updateById(dgArchivesDO);

        //修改不动产信息,先删除.后插入
        List<UpdateDgBdcdyRequest> updateDgBdcdyRequests = request.getUpdateDgBdcdyRequests();
        List<DgBdcdyDO> dgBdcdyDOS = dgBdcdyConverter.voList2DoList(updateDgBdcdyRequests);
        //删除
        QueryWrapper<DgBdcdyDO> wrapper = new QueryWrapper<>();
        wrapper.lambda().eq(DgBdcdyDO::getBsmArchives, bsmArchives);
        dgBdcdyService.remove(wrapper);
        //插入
        dgBdcdyService.saveBatch(dgBdcdyDOS);

        //修改业务信息
        UpdateDgBusinessRequest updateDgBusinessRequest = request.getUpdateDgBusinessRequest();
        DgBusinessDO dgBusinessDO = dgBusinessConverter.updateRequest2DO(updateDgBusinessRequest);
        QueryWrapper<DgBusinessDO> queryWrapper = new QueryWrapper<>();
        queryWrapper.lambda().eq(DgBusinessDO::getBsmArchives, bsmArchives);
        return dgBusinessService.update(dgBusinessDO,queryWrapper);

    }

    /**
     * 根据条件进行列表查询
     *
     * @param request
     * @return
     */
    @Override
    public IPage<DgArchivesReplenishListVO> searchDgArchivesReplenishList(DgArchivesReplenishSearchRequest request) {

        IPage<DgArchivesReplenishListVO> pageParam = new Page<>(request.getCurrentPage(), request.getPageSize());
        return dgarchivesreplenishMapper.search(pageParam, request);
    }

}