package com.docus.bgts.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.docus.bgts.entity.*; import com.docus.bgts.facade.IAfCollectTaskService; import com.docus.bgts.mapper.dbmysql.AfCollectTaskMapper; import com.docus.bgts.mapper.dbmysql.AfInterfaceCollectMapper; import com.docus.bgts.mapper.dbmysql.AfInterfaceCollectSubMapper; import com.docus.bgts.mapper.dboracle.TestMapper; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Arrays; import java.util.Date; import java.util.List; /** *

* 病案采集任务 服务实现类 *

* * @author 曾文和 * @since 2021-05-07 */ @Service public class AfCollectTaskServiceImpl extends ServiceImpl implements IAfCollectTaskService { @Autowired TestMapper testMapper; @Autowired AfCollectTaskMapper afCollectTaskMapper; @Autowired AfInterfaceCollectMapper afInterfaceCollectMapper; @Autowired AfInterfaceCollectSubMapper afInterfaceCollectSubMapper; @Override public String getpatientIdByEmpId(String empId) { String patientId = afCollectTaskMapper.getpatientIdByEmpId(empId); return patientId; } @Override public void insert(ReportDownDto reportDownDto) { AfCollectTask afCollectTask; String patientId = getpatientIdByEmpId(reportDownDto.getPatient().getJzh()); if (StringUtils.isBlank(patientId)) { throw new RuntimeException("操作的病案信息不存在"); } Date date = new Date(); Integer save = null; List scanfiles = reportDownDto.getScanfiles(); for (ReportDownScanFileDto scanfile : scanfiles) { // 判断任务是否已存在 afCollectTask = afCollectTaskMapper.selectOne(new QueryWrapper().eq("C1", scanfile.getSerialnum()).eq("sysflag", reportDownDto.getCollectorid())); if (afCollectTask == null) { //不存在 新增 afCollectTask = new AfCollectTask(); afCollectTask.setPatientId(patientId); afCollectTask.setSysflag(reportDownDto.getCollectorid()); afCollectTask.setState("0"); afCollectTask.setSyncTime(date); afCollectTask.setC1(scanfile.getSerialnum()); afCollectTask.setC2(scanfile.getFiletitle()); afCollectTask.setC3(reportDownDto.getPatient().getJzh()); save = afCollectTaskMapper.insert(afCollectTask); if (save <= 0) { throw new RuntimeException("插入病案任务表数据出错"); } } else { //存在就修改 afCollectTask.setPatientId(patientId); afCollectTask.setSysflag(reportDownDto.getCollectorid()); afCollectTask.setState("0"); afCollectTask.setSyncTime(date); afCollectTask.setC1(scanfile.getSerialnum()); afCollectTask.setC2(scanfile.getFiletitle()); save = afCollectTaskMapper.updateById(afCollectTask); } scanfile.setTaskid(afCollectTask.getId()); } reportDownDto.setScanfiles(scanfiles); } @Override public void updateInterfaceCollect(String collectSubId, int state) { AfInterfaceCollectSub afInterfaceCollectSub = afInterfaceCollectSubMapper.selectById(collectSubId); if (afInterfaceCollectSub == null) { throw new RuntimeException("afInterfaceCollectSub表数据为空"); } int i; afInterfaceCollectSub.setState(state); i = afInterfaceCollectSubMapper.updateById(afInterfaceCollectSub); if (i <= 0) { throw new RuntimeException("记录任务数时出错"); } if (state == 1) { AfInterfaceCollect afInterfaceCollect = afInterfaceCollectMapper.selectById(afInterfaceCollectSub.getAfInterfaceCollectId()); afInterfaceCollect.setCompleteCount(afInterfaceCollect.getCompleteCount() + 1); i = afInterfaceCollectMapper.updateById(afInterfaceCollect); if (i <= 0) { throw new RuntimeException("记录任务数时出错"); } } } }