package com.ruoyi.system.service.impl;

import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.system.domain.BusDevice;
import com.ruoyi.system.domain.BusPatient;
import com.ruoyi.system.domain.dto.SignDto;
import com.ruoyi.system.mapper.BusDeviceMapper;
import com.ruoyi.system.mapper.BusPatientMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.BusDeviceHistoryMapper;
import com.ruoyi.system.domain.BusDeviceHistory;
import com.ruoyi.system.service.IBusDeviceHistoryService;

/**
 * 透析管理Service业务层处理
 * 
 * @author zsl
 * @date 2022-06-10
 */
@Service
public class BusDeviceHistoryServiceImpl implements IBusDeviceHistoryService 
{
    @Autowired
    private BusDeviceHistoryMapper busDeviceHistoryMapper;

    @Autowired
    private BusDeviceMapper busDeviceMapper;

    @Autowired
    private BusPatientMapper busPatientMapper;


    /**
     * 查询透析管理
     * 
     * @param id 透析管理主键
     * @return 透析管理
     */
    @Override
    public BusDeviceHistory selectBusDeviceHistoryById(Long id)
    {
        return busDeviceHistoryMapper.selectBusDeviceHistoryById(id);
    }

    /**
     * 查询透析管理列表
     * 
     * @param busDeviceHistory 透析管理
     * @return 透析管理
     */
    @Override
    public List<BusDeviceHistory> selectBusDeviceHistoryList(BusDeviceHistory busDeviceHistory)
    {
        return busDeviceHistoryMapper.selectBusDeviceHistoryList(busDeviceHistory);
    }

    /**
     * 新增透析管理
     * 
     * @param busDeviceHistory 透析管理
     * @return 结果
     */
    @Override
    public int insertBusDeviceHistory(BusDeviceHistory busDeviceHistory)
    {
        busDeviceHistory.setCreateTime(DateUtils.getNowDate());
        return busDeviceHistoryMapper.insertBusDeviceHistory(busDeviceHistory);
    }

    /**
     * 修改透析管理
     * 
     * @param busDeviceHistory 透析管理
     * @return 结果
     */
    @Override
    public int updateBusDeviceHistory(BusDeviceHistory busDeviceHistory)
    {
        if(busDeviceHistory.getdId()!=null){
            BusDevice busDevice = new BusDevice();
            busDevice.setId(busDeviceHistory.getdId());
            busDevice.setStatus(busDeviceHistory.getStatus());
            busDeviceMapper.updateBusDevice(busDevice);
        }
        if (busDeviceHistory.getpId()!=null){
            BusPatient busPatient = new BusPatient();
            busPatient.setId(busDeviceHistory.getpId());
            busPatient.setStatus(busDeviceHistory.getStatus());
            busPatientMapper.updateBusPatient(busPatient);
        }
        return busDeviceHistoryMapper.updateBusDeviceHistory(busDeviceHistory);
    }

    /**
     * 批量删除透析管理
     * 
     * @param ids 需要删除的透析管理主键
     * @return 结果
     */
    @Override
    public int deleteBusDeviceHistoryByIds(Long[] ids)
    {
        return busDeviceHistoryMapper.deleteBusDeviceHistoryByIds(ids);
    }

    /**
     * 删除透析管理信息
     * 
     * @param id 透析管理主键
     * @return 结果
     */
    @Override
    public int deleteBusDeviceHistoryById(Long id)
    {
        return busDeviceHistoryMapper.deleteBusDeviceHistoryById(id);
    }
    /**
     * 签到
     *
     * @param sign 透析管理主键
     * @return 结果
     */
    @Override
    public int sign( SignDto sign) {
        Long patinetId = sign.getPatientId();
        Long deviceId = sign.getDeviceId();

        BusDeviceHistory busDeviceHistory = new BusDeviceHistory();
        BusDevice busDevice = busDeviceMapper.selectBusDeviceById(deviceId);
        BusPatient busPatient = busPatientMapper.selectBusPatientById(patinetId);
        //修改设备状态
        busDevice.setStatus(1);
        busDeviceMapper.updateBusDevice(busDevice);
        //修改患者状态
        busPatient.setStatus(0);
        busPatientMapper.updateBusPatient(busPatient);


        //时间处理
        busDeviceHistory.setSignTime(DateUtils.getNowDate());
        busDeviceHistory.setUpdateTime(DateUtils.getNowDate());


        busDeviceHistory.setdId(deviceId);
        busDeviceHistory.setpId(patinetId);

        busDeviceHistory.setDeviceId(busDevice.getDeviceId());
        busDeviceHistory.setArea(busDevice.getArea());
        busDeviceHistory.setBed(busDevice.getBed());
        busDeviceHistory.setBrandName(busDevice.getBrandName());
        busDeviceHistory.setModel(busDevice.getModel());
        busDeviceHistory.setManufactureId(busDevice.getManufactureId());
        busDeviceHistory.setPrice(busDevice.getPrice());
        busDeviceHistory.setInfection(busDevice.getInfection());
        busDeviceHistory.setCode(busPatient.getCode());
        busDeviceHistory.setName(busPatient.getName());
        busDeviceHistory.setGender(busPatient.getGender());
        busDeviceHistory.setHeight(busPatient.getHeight());
        busDeviceHistory.setAge(busPatient.getAge());
        busDeviceHistory.setWeight(busPatient.getWeight());
        busDeviceHistory.setSource(busPatient.getSource());
        busDeviceHistory.setAddress(busPatient.getAddress());
        busDeviceHistory.setCreateTime(busPatient.getCreateTime());
        busDeviceHistory.setPhone(busPatient.getPhone());
        busDeviceHistory.setRelationName(busPatient.getRelationName());
        busDeviceHistory.setRelationPhone(busPatient.getRelationPhone());

        busDeviceHistory.setVerifyPrescription(false);
        busDeviceHistory.setVerifyBefore(false);
        busDeviceHistory.setVerifyAfter(false);
        busDeviceHistory.setStatus(0);

        return busDeviceHistoryMapper.insertBusDeviceHistory(busDeviceHistory);
    }
    /**
     * 治疗中
     *
     * @param ids 透析管理主键
     * @return 结果
     */
    @Override
    public int cure(Long[] ids ,Long[] pids) {

        busPatientMapper.updateStatusByIds(pids,1);

        return busDeviceHistoryMapper.updateStatusByIds(ids,1);
    }
}
