sen
2025-09-01 4f7d8924b8c5f4f019b16a8563e30c48abef441e
service/src/main/java/com/ruoyi/cwgl/service/impl/KeyCollectionInfoServiceImpl.java
New file
@@ -0,0 +1,217 @@
package com.ruoyi.cwgl.service.impl;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.cwgl.domain.RequestLog;
import com.ruoyi.cwgl.domain.dto.TakeReviewDto;
import com.ruoyi.cwgl.service.IRequestLogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.stereotype.Service;
import org.springframework.scheduling.annotation.Async;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.annotation.DataSource;
import com.ruoyi.common.enums.DataSourceType;
import com.ruoyi.common.core.service.BaseService;
import com.ruoyi.cwgl.mapper.KeyCollectionInfoMapper;
import com.ruoyi.cwgl.domain.KeyCollectionInfo;
import com.ruoyi.cwgl.service.IKeyCollectionInfoService;
import com.ruoyi.common.core.text.Convert;
/**
 * 钥匙领取信息Service业务层处理
 *
 * @author ruoyi
 * @date 2025-08-27
 */
@Service
@Transactional(rollbackFor = Exception.class)
public class KeyCollectionInfoServiceImpl  extends BaseService<KeyCollectionInfoMapper, KeyCollectionInfo> implements IKeyCollectionInfoService
{
    protected final Logger logger = LoggerFactory.getLogger(getClass());
    @Resource
    private KeyCollectionInfoMapper keyCollectionInfoMapper;
    /**
     * 查询钥匙领取信息
     *
     * @param id 钥匙领取信息ID
     * @return 钥匙领取信息
     */
    @DataSource(DataSourceType.SLAVE)
    @Override
    public KeyCollectionInfo selectKeyCollectionInfoById(Integer id)
    {
        return keyCollectionInfoMapper.selectKeyCollectionInfoById(id);
    }
    /**
     * 查询钥匙领取信息 记录数
     *
     * @param keyCollectionInfo 钥匙领取信息
     * @return 钥匙领取信息集合
     */
    @DataSource(DataSourceType.SLAVE)
    @Override
    public int selectKeyCollectionInfoCount(KeyCollectionInfo keyCollectionInfo)
    {
        return keyCollectionInfoMapper.selectKeyCollectionInfoCount(keyCollectionInfo);
    }
    /**
     * 查询钥匙领取信息列表
     *
     * @param keyCollectionInfo 钥匙领取信息
     * @return 钥匙领取信息
     */
    @DataSource(DataSourceType.SLAVE)
    @Override
    public List<KeyCollectionInfo> selectKeyCollectionInfoList(KeyCollectionInfo keyCollectionInfo)
    {
        return keyCollectionInfoMapper.selectKeyCollectionInfoList(keyCollectionInfo);
    }
    /**
     * 查询钥匙领取信息列表 异步 导出
     *
     * @param keyCollectionInfo 钥匙领取信息
     * @param exportKey 导出功能的唯一标识
     * @return 钥匙领取信息集合
     */
    @DataSource(DataSourceType.SLAVE)
    @Async
    @Override
    public void export(KeyCollectionInfo keyCollectionInfo,String exportKey) {
        super.export(KeyCollectionInfo.class,exportKey,"keyCollectionInfoData",(pageNum)->{
            PageUtils.startPage(pageNum, Constants.EXPORT_PATE_SIZE);
            return selectKeyCollectionInfoList(keyCollectionInfo);
        });
    }
    /**
     * 新增钥匙领取信息
     *
     * @param keyCollectionInfo 钥匙领取信息
     * @return 结果
     */
    @Override
    public int insertKeyCollectionInfo(KeyCollectionInfo keyCollectionInfo)
    {
        return keyCollectionInfoMapper.insertKeyCollectionInfo(keyCollectionInfo);
    }
    /**
     * 新增钥匙领取信息[批量]
     *
     * @param keyCollectionInfos 钥匙领取信息
     * @return 结果
     */
    @Override
    public int insertKeyCollectionInfoBatch(List<KeyCollectionInfo> keyCollectionInfos)
    {
        int rows = keyCollectionInfoMapper.insertKeyCollectionInfoBatch(keyCollectionInfos);
        return rows;
    }
    /**
     * 修改钥匙领取信息
     *
     * @param keyCollectionInfo 钥匙领取信息
     * @return 结果
     */
    @Override
    public int updateKeyCollectionInfo(KeyCollectionInfo keyCollectionInfo)
    {
        return keyCollectionInfoMapper.updateKeyCollectionInfo(keyCollectionInfo);
    }
    /**
     * 修改钥匙领取信息[批量]
     *
     * @param keyCollectionInfos 钥匙领取信息
     * @return 结果
     */
    @Override
    public int updateKeyCollectionInfoBatch(List<KeyCollectionInfo> keyCollectionInfos){
        return keyCollectionInfoMapper.updateKeyCollectionInfoBatch(keyCollectionInfos);
    }
    /**
     * 删除钥匙领取信息对象
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    @Override
    public int deleteKeyCollectionInfoByIds(String ids)
    {
        return deleteKeyCollectionInfoByIds(Convert.toIntArray(ids));
    }
    /**
     * 删除钥匙领取信息对象
     *
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    @Override
    public int deleteKeyCollectionInfoByIds(Integer[] ids)
    {
        return keyCollectionInfoMapper.deleteKeyCollectionInfoByIds(ids);
    }
    /**
     * 删除钥匙领取信息信息
     *
     * @param id 钥匙领取信息ID
     * @return 结果
     */
    @Override
    public int deleteKeyCollectionInfoById(Integer id)
    {
        return keyCollectionInfoMapper.deleteKeyCollectionInfoById(id);
    }
    @DataSource(DataSourceType.CWSJ)
    @Override
    public KeyCollectionInfo selectCwData(TakeReviewDto takeReviewDto) {
        return keyCollectionInfoMapper.selectCwData(takeReviewDto);
    }
    @Override
    public AjaxResult takeReview(KeyCollectionInfo keyCollectionInfo) {
        if (keyCollectionInfo == null) {
            return AjaxResult.error("查无符合要求的调度单,请联系调度人员",3);
        }
        keyCollectionInfoMapper.insertKeyCollectionInfo(keyCollectionInfo);
        //调度超时
        Integer schedulingTimeout = keyCollectionInfo.getSchedulingTimeout();
        if(schedulingTimeout>5){
            return AjaxResult.error("调度超时下单,超时"+schedulingTimeout+"个小时",3);
        }
        Integer keyTimeout = keyCollectionInfo.getKeyTimeout();
        if (keyTimeout!=null && keyTimeout>24){
            Date estimatedDepartureTime = keyCollectionInfo.getEstimatedDepartureTime();
            String dateToStr = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, estimatedDepartureTime);
            return AjaxResult.error("预计出发时间"+ dateToStr+",领取钥匙超时"+keyTimeout+"个小时");
        }
        return AjaxResult.success("成功",2);
    }
}