package com.ann.demo.service.impl;

import com.ann.demo.entity.interfaceEntity.ArchiveMaster;
import com.ann.demo.repository.ArchiveDetailRepository;
import com.ann.demo.repository.ArchiveMasterRepository;
import com.ann.demo.service.ArchiveDetailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * @Author: LeiJiaXin
 * @Date: 2019/9/4 10:05
 */
@Service
public class ArchiveDetailServiceImpl implements ArchiveDetailService {

    @Autowired
    ArchiveDetailRepository archiveDetailRepository;

    @Autowired
    ArchiveMasterRepository archiveMasterRepository;

//    @Override
//    public String updateFlag(String applyId) throws Exception {
//        // 如果为null 说明新增 如果不为空 那么 更改删除都是作废
//        String id = archiveDetailRepository.findIdByApplyId(applyId);
//        if (id != null) {
//            Integer result = archiveDetailRepository.updateFlagById(id);
//            if (result > 1) {
//                return null;
//            } else {
//                return "病历清单更新/删除失败。。。";
//            }
//        }
//        return null;
//    }

//    @Override
//    public String updateIndexFlag(String inpNo, String visitId, String assortId) {
//        // 更新病案首页
//        ArchiveMaster am = archiveMasterRepository.findByInpNoAndVisitIdAndIsValid(inpNo, visitId, 0);
//        if (am != null) {
//            String id = archiveDetailRepository.findIdByMasterIDAndAssortID(am.getId(), assortId);
//            Integer result = archiveDetailRepository.updateFlagById(id);
//            if (result > 0) {
//                return null;
//            } else {
//                return "病案首页作废失败";
//            }
//        }
//        return null;
//    }

    @Override
    public String updateAllFlag(String applyId, String source)  throws Exception {
        // 使用住院号-住院次数 去搜是否存在 如果不存在 那就新增  如果存在 那么就判断 创建时间是否一致 如果一致 就新增 不存在就把之前的作废
        String temp = applyId;
        if( applyId.lastIndexOf("-") != -1){
            //截取住院号-住院次数
            temp = applyId.substring(0,applyId.lastIndexOf("-"));
        }
        String result = archiveDetailRepository.getApplyIdByApplyIdAndFlag(temp, "0");
        if (result != null) {
            if (!result.equals(applyId)){
                if(archiveDetailRepository.updateFlagByApplyId(result, source) == 0){
                    return "病历清单更新/删除失败。。。";
                }
            }
        }
        return null;
    }
}
