McIgnitionServiceImpl.java 8.78 KB
package com.chinagas.modules.schsf.service.impl;

import com.alibaba.fastjson2.JSON;
import com.chinagas.common.core.utils.DateUtils;
import com.chinagas.common.core.utils.StringUtils;
import com.chinagas.common.datascope.annotation.DataScope;
import com.chinagas.common.security.utils.SecurityUtils;
import com.chinagas.modules.schsf.domain.McIgnition;
import com.chinagas.modules.schsf.domain.McVisit;
import com.chinagas.modules.schsf.domain.vo.McIgnitionMaintenanceVo;
import com.chinagas.modules.schsf.enums.IgnitionStatusEnums;
import com.chinagas.modules.schsf.enums.YesNoEnums;
import com.chinagas.modules.schsf.mapper.McIgnitionMapper;
import com.chinagas.modules.schsf.service.IMcIgnitionService;
import com.chinagas.modules.schsf.service.IMcOperationLogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 点火维护Service业务层处理
 *
 * @author cw
 * @date 2024-05-22
 */
@Transactional
@Service
public class McIgnitionServiceImpl implements IMcIgnitionService {
    @Autowired
    private McIgnitionMapper mcIgnitionMapper;
    @Autowired
    private IMcOperationLogService iMcOperationLogService;

    /**
     * 根据mcVisit插入mcIgnition
     *
     * @param mcVisit
     * @return
     */
    @Override
    public int insertMcVisitByMcIgnition(McVisit mcVisit) {
        if (StringUtils.isEmpty(mcVisit.getIsCharged()) || mcVisit.getIsCharged().equals(YesNoEnums.N.getName())) {
            return 0;
        }

        LocalDateTime time = DateUtils.getNowLocal();
        String userId = SecurityUtils.getUserId().toString();
        String userAccount = SecurityUtils.getUsername();
        String userName = SecurityUtils.getLoginUser().getSysUser().getNickName();



        McIgnition mcIgnition = new McIgnition();
        mcIgnition.setRegionName(mcVisit.getRegionName());
        mcIgnition.setGroupName(mcVisit.getGroupName());
        mcIgnition.setCompanyCode(mcVisit.getCompanyCode());
        mcIgnition.setCompanyName(mcVisit.getCompanyName());

        mcIgnition.setUserProvince(mcVisit.getUserProvince());
        mcIgnition.setUserCity(mcVisit.getUserCity());
        mcIgnition.setUserDistrict(mcVisit.getUserDistrict());
        mcIgnition.setUserStreet(mcVisit.getUserStreet());
        mcIgnition.setVlgOrCmty(mcVisit.getVlgOrCmty());
        mcIgnition.setUserName(mcVisit.getUserName());
        mcIgnition.setUserPhone(mcVisit.getUserPhone());

        List<McIgnition> mcIgnitions = mcIgnitionMapper.selectMcIgnitionParamList(mcIgnition);
        if (!mcIgnitions.isEmpty()) {
            return 0;
        }

        mcIgnition.setVisitId(mcVisit.getId());
        mcIgnition.setUrbRurCls(mcVisit.getUrbRurCls());
        mcIgnition.setUserDetailedAddress(mcVisit.getUserDetailedAddress());
        mcIgnition.setUserCode(mcVisit.getUserCode());
        mcIgnition.setUserIdCard(mcVisit.getUserIdCard());
        mcIgnition.setIgnCnfStatusCode("W");

        mcIgnition.setCreateTime(time);
        mcIgnition.setCreateBy(userId);
        mcIgnition.setUpdateTime(time);
        mcIgnition.setUpdateBy(userId);

        mcIgnition.setStatusCode(IgnitionStatusEnums.MAINTENANCE.getCode());
        mcIgnition.setStatusName(IgnitionStatusEnums.MAINTENANCE.getInfo());
        int i = mcIgnitionMapper.insertMcIgnition(mcIgnition);
        //1:添加记录
        iMcOperationLogService.insertMcOperationLog("mc_ignition", mcIgnition.getId(), "schsf:mcVisit:ticket_submitAuditTwo",
                "发起", "1", "导入基础数据-户数", null, JSON.toJSONString(mcIgnition));
        return i;
    }

    /**
     * 查询点火维护
     *
     * @param id 点火维护主键
     * @return 点火维护
     */
    @Override
    public McIgnition selectMcIgnitionById(Long id) {
        return mcIgnitionMapper.selectMcIgnitionById(id);
    }

    /**
     * 查询点火维护列表
     *
     * @param mcIgnition 点火维护
     * @return 点火维护
     */
    @DataScope(deptAlias = "d", userAlias = "u")
    @Override
    public List<McIgnition> selectMcIgnitionList(McIgnition mcIgnition) {
        return mcIgnitionMapper.selectMcIgnitionList(mcIgnition);
    }

    /**
     * 新增点火维护
     *
     * @param mcIgnition 点火维护
     * @return 结果
     */
    @Override
    public int insertMcIgnition(McIgnition mcIgnition) {
        mcIgnition.setCreateTime(DateUtils.getNowLocal());
        return mcIgnitionMapper.insertMcIgnition(mcIgnition);
    }

    /**
     * 修改点火维护
     *
     * @param mcIgnition 点火维护
     * @return 结果
     */
    @Override
    public int updateMcIgnition(McIgnition mcIgnition) {
        mcIgnition.setUpdateTime(DateUtils.getNowLocal());
        return mcIgnitionMapper.updateMcIgnition(mcIgnition);
    }

    /**
     * 批量删除点火维护
     *
     * @param ids 需要删除的点火维护主键
     * @return 结果
     */
    @Override
    public int deleteMcIgnitionByIds(Long[] ids) {
        return mcIgnitionMapper.deleteMcIgnitionByIds(ids);
    }

    /**
     * 删除点火维护信息
     *
     * @param id 点火维护主键
     * @return 结果
     */
    @Override
    public int deleteMcIgnitionById(Long id) {
        return mcIgnitionMapper.deleteMcIgnitionById(id);
    }

    /**
     * 点火维护
     * @param mcIgnition
     * @return
     */
    @Override
    public int updateMcIgnitionMaintenance(McIgnitionMaintenanceVo mcIgnitionMaintenanceVo) throws CloneNotSupportedException {
        LocalDateTime time = DateUtils.getNowLocal();
        Long userId = SecurityUtils.getUserId();
        String userAccount = SecurityUtils.getUsername();
        String userName = SecurityUtils.getLoginUser().getSysUser().getNickName();
        //老数据
        McIgnition mcIgnition_old = mcIgnitionMapper.selectMcIgnitionById(mcIgnitionMaintenanceVo.getId());
        if (mcIgnition_old==null){
            throw new RuntimeException("被审核信息不存在!");
        }
        //新数据
        McIgnition mcIgnition_new = mcIgnition_old.clone();
        mcIgnition_new.setIgnCnfStatusCode(mcIgnitionMaintenanceVo.getIgnCnfStatusCode());
        mcIgnition_new.setIgnTime(mcIgnitionMaintenanceVo.getIgnTime());
        mcIgnition_new.setnIgnRsn(mcIgnitionMaintenanceVo.getnIgnRsn());
        mcIgnition_new.setUpdateBy(userId.toString());
        mcIgnition_new.setUpdateTime(time);
        mcIgnition_new.setStatusCode(mcIgnitionMaintenanceVo.getIgnCnfStatusCode().equals("Y")?IgnitionStatusEnums.MAINTENANCE_YES.getCode():IgnitionStatusEnums.MAINTENANCE_NO.getCode());
        mcIgnition_new.setStatusName(mcIgnitionMaintenanceVo.getIgnCnfStatusCode().equals("Y")?IgnitionStatusEnums.MAINTENANCE_YES.getInfo():IgnitionStatusEnums.MAINTENANCE_NO.getInfo());
        mcIgnition_new.setCnfPersonId(userId);
        mcIgnition_new.setCnfPersonAccount(userAccount);
        mcIgnition_new.setCnfPersonName(userName);
        mcIgnition_new.setUserCode(mcIgnitionMaintenanceVo.getUserCode());
        int i = mcIgnitionMapper.updateMcIgnition(mcIgnition_new);
        //1:添加记录
        iMcOperationLogService.insertMcOperationLog("mc_ignition", mcIgnitionMaintenanceVo.getId(), "schsf:mcIgnition:maintenance",
                "维护", "1", null, JSON.toJSONString(mcIgnition_old), JSON.toJSONString(mcIgnition_new));
        return i;
    }

    /**
     * 作废
     * @param visitId
     */
    @Override
    public void updateMcIgnitionCancel(Long visitId) throws CloneNotSupportedException {
        LocalDateTime time = DateUtils.getNowLocal();
        String userId = SecurityUtils.getUserId().toString();
        String userAccount = SecurityUtils.getUsername();
        String userName = SecurityUtils.getLoginUser().getSysUser().getNickName();

        McIgnition mcIgnition= new McIgnition();
        mcIgnition.setVisitId(visitId);
        List<McIgnition> mcIgnitions = mcIgnitionMapper.selectMcIgnitionList(mcIgnition);
        if (mcIgnitions !=null && mcIgnitions.size()>0){
            for (McIgnition mcIgnition_old : mcIgnitions) {
                //新数据
                McIgnition mcIgnition_new = mcIgnition_old.clone();
                mcIgnition_new.setUpdateBy(userId);
                mcIgnition_new.setUpdateTime(time);
                mcIgnition_new.setStatusCode(IgnitionStatusEnums.CANCEL.getCode());
                mcIgnition_new.setStatusName(IgnitionStatusEnums.CANCEL.getInfo());
                int i = mcIgnitionMapper.updateMcIgnition(mcIgnition_new);
                //1:添加记录
                iMcOperationLogService.insertMcOperationLog("mc_ignition", mcIgnition_new.getId(), "schsf:mcVisit:cancel",
                        "作废", "1", null, JSON.toJSONString(mcIgnition_old), JSON.toJSONString(mcIgnition_new));
            }
        }
    }
}