liusheng
2025-03-14 d5222c7ae76d34cf8a7e32fee1ed15c988c3b330
smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java
@@ -10,6 +10,7 @@
import com.smartor.mapper.BaseTagMapper;
import com.smartor.mapper.PatArchiveMapper;
import com.smartor.mapper.PatArchivetagMapper;
import com.smartor.mapper.ServiceSubtaskMapper;
import com.smartor.service.IPatArchiveService;
import com.smartor.service.IPatMedInhospService;
import com.smartor.service.IPatMedOuthospService;
@@ -47,6 +48,9 @@
public class PatArchiveServiceImpl implements IPatArchiveService {
    @Autowired
    private PatArchiveMapper patArchiveMapper;
    @Autowired
    private ServiceSubtaskMapper serviceSubtaskMapper;
    @Autowired
    private BaseTagMapper baseTagMapper;
@@ -96,6 +100,7 @@
     * @param patArchive 患者档案
     * @return 结果
     */
    @Transactional(rollbackFor = Exception.class)
    @Override
    public Integer insertPatArchive(PatArchive patArchive) {
        patArchive.setCreateTime(DateUtils.getNowDate());
@@ -103,11 +108,22 @@
        return patArchive.getId().intValue();
    }
    @Transactional(rollbackFor = Exception.class)
    @Override
    public Boolean update(PatArchive patArchive) {
        int i = patArchiveMapper.updatePatArchive(patArchive);
        if (i != 1) {
            return false;
        } else {
            ServiceSubtask serviceSubtask = new ServiceSubtask();
            serviceSubtask.setPatid(patArchive.getId());
            serviceSubtask.setSendname(patArchive.getName());
            serviceSubtask.setPhone(patArchive.getTelcode());
            serviceSubtask.setSex(patArchive.getSex());
            serviceSubtask.setAge(patArchive.getAge());
            serviceSubtask.setSfzh(patArchive.getIdcardno());
            serviceSubtask.setAddr(patArchive.getPlaceOfResidence());
            serviceSubtaskMapper.updateServiceSubtaskByPatId(serviceSubtask);
        }
        return true;
    }
@@ -133,6 +149,33 @@
            //修改
            patArchiveVO.setIsoperation(2);
            patArchiveMapper.updatePatArchive(patArchive);
            if (StringUtils.isNotEmpty(patArchive.getNotrequiredFlag()) && patArchive.getNotrequiredFlag().equals("1")) {
                //不需要服务了,需要通过patid和sendstate=2或者sendstate=1去查询一下,service_subtask里是否有正在执行的任务,有的话,立即停了
                ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
                serviceSubtaskVO.setPatid(patArchive.getId());
                serviceSubtaskVO.setSendstate(2L);
                List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
                serviceSubtaskVO.setSendstate(1L);
                List<ServiceSubtask> serviceSubtaskList1 = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
                if (CollectionUtils.isNotEmpty(serviceSubtaskList)) {
                    if (CollectionUtils.isNotEmpty(serviceSubtaskList1)) serviceSubtaskList.addAll(serviceSubtaskList1);
                } else {
                    if (CollectionUtils.isNotEmpty(serviceSubtaskList1)) serviceSubtaskList = serviceSubtaskList1;
                }
                //去redis中,查询是否有subid,有的话移除cache-exist
                if (CollectionUtils.isNotEmpty(serviceSubtaskList)) {
                    for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
                        log.error("需要移除的subId为:{}", serviceSubtask.getId().toString());
                        serviceSubtaskMapper.deleteServiceSubtaskById(serviceSubtask.getId());
                        redisCache.removeElementFromList("cache-exist", serviceSubtask.getId().toString());
                        redisCache.removeElementFromList("cache-0", serviceSubtask.getId().toString());
                        redisCache.removeElementFromList("cache-1", serviceSubtask.getId().toString());
                        redisCache.removeElementFromList("cache-2", serviceSubtask.getId().toString());
                        redisCache.removeElementFromList("cache-3", serviceSubtask.getId().toString());
                        redisCache.removeElementFromList("cache-4", serviceSubtask.getId().toString());
                    }
                }
            }
        }
        if (CollectionUtils.isNotEmpty(patArchiveVO.getTagList())) {