ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatSatisfactionController.java
@@ -121,14 +121,8 @@ @Log(title = "æ£è 满æåº¦", businessType = BusinessType.INSERT) @PostMapping("/batchinsert") public AjaxResult batchinsert(@RequestBody List<PatSatisfaction> patSatisfaction) { LoginUser loginUser = getLoginUser(); SysUser user = loginUser.getUser(); for (PatSatisfaction patSatisfaction1 : patSatisfaction) { patSatisfaction1.setCreateBy(user.getNickName()); patSatisfaction1.setOrgid(user.getOrgid()); patSatisfactionService.insertPatSatisfaction(patSatisfaction1); } return toAjax(1); Integer row = patSatisfactionService.batchInsert(patSatisfaction); return toAjax(row); } /** ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
@@ -1000,9 +1000,14 @@ @PostMapping("/syncMedOperForShiyi") public AjaxResult syncMedOperForShiyi(@RequestParam("startTime") String startTime, @RequestParam("endTime") String endTime) { // ç«å³è¿åï¼åå°å¼æ¥æ§è¡ CompletableFuture.runAsync(() -> { collectHISService.syncOper(startTime, endTime); }); return AjaxResult.success("忥任å¡å·²å¯å¨ï¼è¯·ç¨åæ¥çç»æ"); } @PostMapping("/dealSubtaskDeadline") public AjaxResult dealSubtaskDeadline(@RequestParam("orgid") String orgid, @RequestParam("day") Integer day) { // ç«å³è¿åï¼åå°å¼æ¥æ§è¡ ryTask.dealSubtaskDeadline(orgid, day); return AjaxResult.success("ãdealSubtaskDeadlineã忥任å¡å·²å¯å¨ï¼å¤©æ°ä¸º" + day + "天ï¼è¯·ç¨åæ¥çç»æ"); } } ruoyi-admin/src/main/java/com/ruoyi/web/controller/sso/SSOController.java
@@ -14,12 +14,18 @@ import com.ruoyi.system.service.ISysUserService; import com.smartor.domain.SSOTokenResponse; import com.smartor.domain.SSOUserInfo; import com.smartor.domain.ServiceSubtask; import com.smartor.domain.VO.ServiceSubtaskVO; import com.smartor.domain.entity.ServiceSubtaskEntity; import com.smartor.service.IServiceSubtaskService; import com.smartor.service.impl.ServiceSubtaskServiceImpl; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.*; import org.springframework.http.client.SimpleClientHttpRequestFactory; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; import org.springframework.util.ObjectUtils; @@ -32,9 +38,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; import java.util.*; /** * SSOåç¹ç»å½æ§å¶å¨ @@ -93,6 +97,9 @@ private ISysConfigService sysConfigService; private final RestTemplate restTemplate; @Autowired private IServiceSubtaskService serviceSubtaskService; public SSOController() { // é ç½®RestTemplateè¶ æ¶ @@ -188,6 +195,9 @@ @GetMapping("ssoGoServiceSubtaskList") public RedirectView ssoGoServiceSubtaskList(@RequestParam(value = "code", required = false) String code, @RequestParam(value = "sfzh", required = false) String sfzh) { // éå®åå°å对象(éå®åå°å RedirectView redirectView = new RedirectView(); log.info("æ¶å°ssoGoServiceSubtaskList请æ±ï¼å¼å§éå®åå°æææå¡å¨,code = {}, sfzh = {}",code, sfzh); String path = sysConfigService.selectConfigByKey("sys.qddz"); String redirectUri = "https://9.208.2.190:8092/prod-api/sso/ssoLoginLyra"; @@ -196,11 +206,21 @@ String clientSecret = "suifangxt"; String scope = "openid"; ServiceSubtaskEntity subtask = new ServiceSubtaskEntity(); subtask.setSfzh(sfzh); subtask.setSort(0); List<ServiceSubtask> serviceSubtaskList = serviceSubtaskService.selectServiceSubtaskList(subtask); ServiceSubtask serviceSubtask = null; if(CollectionUtils.isNotEmpty(serviceSubtaskList)){ serviceSubtask = serviceSubtaskList.get(0); }else { redirectView.setUrl(path + "/login?error=sso_failed"); return redirectView; } // String authorizeUrl = lyraPath + "/mediinfo-lyra-authserver/connect/authorize"; String accessTokenUrl = lyraPath + "/mediinfo-lyra-authserver/connect/token"; String userInfoUrl = lyraPath + "/mediinfo-lyra-authserver/connect/userinfo"; // éå®åå°å对象(éå®åå°å RedirectView redirectView = new RedirectView(); try { SSOTokenResponse accessToken = getAccessTokenLyra(code, accessTokenUrl, clientId, clientSecret, redirectUri,true); log.info("è·åå°çtokenï¼" + accessToken); @@ -223,8 +243,14 @@ return buildRedirect(path + "/login"); } String redirectUrl = path + "/loginSSO?token=" + loginToken + "&orgid=" + orgid + "&sfzh=" + sfzh + "&orgname=null&ZuHuID=null&deptCode=null"; String voiceType = (StringUtils.isNotEmpty(serviceSubtask.getType()) && serviceSubtask.getType().equals("1")) ? "1" : "0"; String redirectUrl = path + "/loginSSO?token=" + loginToken + "&orgid=" + orgid + "&campusid=" + serviceSubtask.getCampusid() + "&taskid=" + serviceSubtask.getTaskid() + "&patid=" + serviceSubtask.getPatid() + "&id=" + serviceSubtask.getId() + "&voiceType=" + voiceType + "&visitCount=" + serviceSubtask.getVisitCount() + "&sfzh=" + sfzh + "&orgname=null&ZuHuID=null&deptCode=null"; log.info("ãSSOç»å½ãéå®åå°åï¼{}", redirectUrl); return buildRedirect(redirectUrl); ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
@@ -2,6 +2,7 @@ import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysMenu; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.entity.SysUserDept; @@ -220,18 +221,18 @@ ajax.put("user", user); ajax.put("roles", roles); ajax.put("permissions", permissions); List<SysUserDept> sysUserDeptKSs = null; List<SysUserDept> sysUserDeptBQs = null; List<SysDept> sysDeptKSs = null; List<SysDept> sysDeptBQs = null; SysUserDept sysUserDept = new SysUserDept(); sysUserDept.setUserId(user.getUserId()); sysUserDept.setDeptType("1"); sysUserDept.setOrgid(user.getOrgid()); sysUserDept.setCampusid(user.getCampusid()); sysUserDeptKSs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept); ajax.put("belongDepts", sysUserDeptKSs); sysDeptKSs = sysDeptService.selectLeafSysDeptListBySysUserDept(sysUserDept); ajax.put("belongDepts", sysDeptKSs); sysUserDept.setDeptType("2"); sysUserDeptBQs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept); ajax.put("belongWards", sysUserDeptBQs); sysDeptBQs = sysDeptService.selectLeafSysDeptListBySysUserDept(sysUserDept); ajax.put("belongWards", sysDeptBQs); return ajax; } ruoyi-common/src/main/java/com/ruoyi/common/utils/ArrayListUtils.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,58 @@ package com.ruoyi.common.utils; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; public class ArrayListUtils { /** * æ ¹æ®IDå°ä¸¤ä¸ªListæå为ï¼ä» List1ç¬æãä» List2ç¬æã两è å ±æ * * @param list1 å表1 * @param list2 å表2 * @param idExtractor IDæå彿° * @return Mapå å«ä¸ä¸ªKey: "onlyIn1", "onlyIn2", "common" */ public static <T, K> Map<String, List<T>> splitListsById(List<T> list1, List<T> list2, Function<T, K> idExtractor) { // 1. æåIDéåï¼ç¨äºå¿«é夿å卿§ Set<K> ids1 = list1.stream().map(idExtractor).collect(Collectors.toSet()); Set<K> ids2 = list2.stream().map(idExtractor).collect(Collectors.toSet()); // 2. 计ç®IDå±é¢çå·®éå交é Set<K> onlyIn1Ids = new HashSet<>(ids1); onlyIn1Ids.removeAll(ids2); // List1ç¬æçID Set<K> onlyIn2Ids = new HashSet<>(ids2); onlyIn2Ids.removeAll(ids1); // List2ç¬æçID Set<K> commonIds = new HashSet<>(ids1); commonIds.retainAll(ids2); // å ±æçID // 3. æ ¹æ®IDè¿æ»¤åå§å¯¹è±¡å表 List<T> onlyIn1 = list1.stream() .filter(item -> onlyIn1Ids.contains(idExtractor.apply(item))) .collect(Collectors.toList()); List<T> onlyIn2 = list2.stream() .filter(item -> onlyIn2Ids.contains(idExtractor.apply(item))) .collect(Collectors.toList()); // 注æï¼å ±æé¨åé常å并两个å表ä¸çå ç´ ï¼æè åªåå ¶ä¸ä¸ä¸ªã // è¿éçç¥æ¯ï¼ä¿çlist1ålist2䏿æIDéåç对象ï¼å¦æä¸å¡è¦æ±å»éæåå¹¶å¯¹è±¡å±æ§ï¼éé¢å¤å¤çï¼ List<T> common = new ArrayList<>(); common.addAll(list1.stream() .filter(item -> commonIds.contains(idExtractor.apply(item))) .collect(Collectors.toList())); // common.addAll(list2.stream() // .filter(item -> commonIds.contains(idExtractor.apply(item))) // .collect(Collectors.toList())); Map<String, List<T>> result = new HashMap<>(); result.put("onlyIn1", onlyIn1); result.put("onlyIn2", onlyIn2); result.put("common", common); return result; } } ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java
@@ -4,10 +4,13 @@ import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.entity.SysUserDept; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.utils.ArrayListUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.quartz.mapper.CollectHISMapper; import com.ruoyi.quartz.service.ICollectHISService; import com.smartor.domain.*; import com.smartor.domain.entity.ServiceSubtaskEntity; import com.smartor.mapper.*; import com.smartor.service.IPatMedOuthospService; import lombok.extern.slf4j.Slf4j; @@ -60,6 +63,9 @@ private PatArchiveMapper patArchiveMapper; @Autowired private ServiceSubtaskMapper serviceSubtaskMapper; @Autowired private ThreadPoolTaskExecutor taskExecutor; @Autowired @@ -67,6 +73,9 @@ @Autowired private UtilsMapper utilsMapper; @Autowired private RedisCache redisCache; private static final long SHARDING_THRESHOLD = 5_000_000L; private static final String PAT_ARCHIVE_TABLE = "pat_archive"; @@ -339,6 +348,11 @@ log.info("åæ¥ææ¯ä¿¡æ¯æ°é" + patMedOperations.size()); for (PatMedOperation operation : patMedOperations) { try { if(ObjectUtils.isNotEmpty(operation.getCanceltime())){ //ä½åºå é¤æä½ cancelOper(operation); continue; } Long patId = patIdHisMap.get(operation.getPatidHis()); if (patId == null) { patId = syncSinglePatient(operation.getPatidHis()); @@ -351,12 +365,12 @@ operation.setPatid(patId); } PatMedOperation oper = new PatMedOperation(); oper.setOpid(operation.getOpid()); oper.setOpreqid(operation.getOpreqid()); List<PatMedOperation> patMedOperations1 = patMedOperationMapper.selectPatMedOperationList(oper); if (CollectionUtils.isNotEmpty(patMedOperations1)) { operation.setId(patMedOperations1.get(0).getId()); operation.setUpdateTime(new Date()); count += patMedOperationMapper.updatePatMedOperation(patMedOperations1.get(0)); count += patMedOperationMapper.updatePatMedOperation(operation); syncOperItem(operation); } else { operation.setCreateTime(new Date()); @@ -370,6 +384,59 @@ return count; } private Integer cancelOper(PatMedOperation oper){ PatMedOperation operationVo = new PatMedOperation(); operationVo.setOpreqid(oper.getOpreqid()); List<PatMedOperation> operations = patMedOperationMapper.selectPatMedOperationList(operationVo); PatMedOperation operation = new PatMedOperation(); if(CollectionUtils.isEmpty(operations)){ return 0; }else { operation = operations.get(0); } log.info("ææ¯ä½åºid=" + operation.getId()); PatMedOperationItem pmoi = new PatMedOperationItem(); //è·åéè¦åºé¢ææ¯éè®¿ï¼æªå¤ççæ°æ® pmoi.setOpid(operation.getId().toString()); List<PatMedOperationItem> patMedOperationItems = patMedOperationItemMapper.selectOperationItemList(pmoi); List<Long> operationItemIds = patMedOperationItems.stream() .map(PatMedOperationItem::getId) .filter(Objects::nonNull) .distinct() .collect(Collectors.toList()); //ä¸éè¦æå¡äºï¼éè¦éè¿patidåsendstate=1,2,3,5,7廿¥è¯¢ä¸ä¸ï¼service_subtask鿝妿æ£å¨æ§è¡çä»»å¡ï¼ //æçè¯ï¼ç«å³åäº List<Long> sendstates = Arrays.asList(1L, 2L, 3L, 5L, 7L); List<ServiceSubtask> serviceSubtaskList = new ArrayList<>(); ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity(); serviceSubtaskVO.setOrgid(operation.getOrgid()); serviceSubtaskVO.setPatid(operation.getPatid()); serviceSubtaskVO.setSendstates(sendstates); serviceSubtaskVO.setOperationItemIds(operationItemIds); serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); //å»redisä¸ï¼æ¥è¯¢æ¯å¦æsubidï¼æçè¯ç§»é¤cache-exist if (CollectionUtils.isNotEmpty(serviceSubtaskList)) { for (ServiceSubtask serviceSubtask : serviceSubtaskList) { log.info("éè¦ç§»é¤çsubId为ï¼{}", serviceSubtask.getId().toString()); serviceSubtask.setSendstate(4L); serviceSubtask.setRemark("ææ¯æ¤é"); serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); 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()); } } operation.setUpdateTime(new Date()); patMedOperationMapper.updatePatMedOperation(operation); patMedOperationItemMapper.deleteSoftPatMedOperationItemByOpId(operation.getOpid()); return 1; } /** * åæ¥ææ¯ä¿¡æ¯ * @@ -377,34 +444,67 @@ * @return */ private Integer syncOperItem(PatMedOperation operation) { if(ObjectUtils.isNotEmpty(operation.getId())){ operation.setOpid(operation.getId().toString()); } operation.setUpdateTime(new Date()); patMedOperationMapper.updatePatMedOperation(operation); Integer count = 0; PatMedOperationItem patMedOperationItem = new PatMedOperationItem(); patMedOperationItem.setOrgid(operation.getOrgid()); if(StringUtils.isNotEmpty(operation.getOpid())){ patMedOperationItem.setOpid(operation.getOpid()); patMedOperationItem.setLastStartTime(operation.getLastStartTime()); patMedOperationItem.setLastEndTime(operation.getLastEndTime()); List<PatMedOperationItem> patMedOperationItems = chMapper.selectOperItemList(patMedOperationItem); PatMedOperationItem patMedOperationItem = new PatMedOperationItem(); //patMedOperation.opReqid = patMedOperationItem.operationid List<PatMedOperationItem> patMedOperationItems = new ArrayList<>(); if (ObjectUtils.isNotEmpty(operation.getOpreqid())){ patMedOperationItem.setOperationid(operation.getOpreqid()); patMedOperationItems = chMapper.selectOperItemList(patMedOperationItem); }else { log.info("åæ¥ææ¯è¯¦æ ä¿¡æ¯:ææ¯ç³è¯·åID为空!"); return count; } PatMedOperationItem operItem = new PatMedOperationItem(); operItem.setOperationid(operation.getOpreqid()); List<PatMedOperationItem> patMedOperationItems1 = patMedOperationItemMapper.selectPatMedOperationItemList(operItem); Map<String, List<PatMedOperationItem>> maps = ArrayListUtils.splitListsById(patMedOperationItems, patMedOperationItems1, PatMedOperationItem::getOperationid); //åªå¨è§å¾çæ°æ®ä¸å¨æ¬å°çæ°æ®ï¼æ§è¡æ°å¢æä½ List<PatMedOperationItem> addItems = maps.get("onlyIn1"); //åªå¨æ¬å°çæ°æ®ä¸å¨è§å¾çæ°æ®ï¼æ§è¡å é¤æä½ List<PatMedOperationItem> delItems = maps.get("onlyIn2"); //éå çæ°æ®ï¼æ§è¡æ´æ°æä½ patMedOperationItemsçæ°æ® List<PatMedOperationItem> editItems = maps.get("common"); log.info("åæ¥ææ¯è¯¦æ ä¿¡æ¯æ°é" + patMedOperationItems.size()); for (PatMedOperationItem operationItem : patMedOperationItems) { try { for (PatMedOperationItem operationItem : addItems) { operationItem.setInhospstate(operation.getInhospstate()); operationItem.setSerialnum(operation.getSerialnum()); PatMedOperationItem operItem = new PatMedOperationItem(); operItem.setOpid(operationItem.getOpid()); operItem.setOperationid(operationItem.getOperationid()); List<PatMedOperationItem> patMedOperationItems1 = patMedOperationItemMapper.selectPatMedOperationItemList(operItem); if (CollectionUtils.isNotEmpty(patMedOperationItems1)) { operationItem.setId(patMedOperationItems1.get(0).getId()); operationItem.setUpdateTime(new Date()); count += patMedOperationItemMapper.updatePatMedOperationItem(operationItem); } else { operation.setCreateTime(new Date()); operationItem.setOpid(operation.getId().toString()); operationItem.setOperationid(operation.getOpreqid()); operationItem.setOpercheckFlag("0"); operationItem.setCreateTime(new Date()); count += patMedOperationItemMapper.insertPatMedOperationItem(operationItem); } for (PatMedOperationItem operationItem : delItems) { operationItem.setUpdateTime(new Date()); count += patMedOperationItemMapper.deletePatMedOperationItemByOperationid(operationItem.getOperationid()); } for (PatMedOperationItem operationItem : editItems) { operationItem.setInhospstate(operation.getInhospstate()); operationItem.setSerialnum(operation.getSerialnum()); operationItem.setOpid(operation.getId().toString()); operationItem.setOperationid(operation.getOpreqid()); operationItem.setUpdateTime(new Date()); count += patMedOperationItemMapper.updatePatMedOperationItemByOperationid(operationItem); } log.info("åæ¥ææ¯id={}详æ ä¿¡æ¯æ°é, æ°å¢{}æ¡ï¼å é¤{}æ¡ï¼ä¿®æ¹{}æ¡", operation.getId(), addItems.size(), delItems.size(), editItems.size()); } catch (Exception ex) { log.info("åæ¥ææ¯è¯¦æ ä¿¡æ¯:" + ex.getMessage()); } } // try { ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
@@ -1771,33 +1771,50 @@ * å¤çè¶ æ¶éè®¿ä»»å¡ * @return */ public void dealSubtaskDeadline(Integer deadlineDay){ public void dealSubtaskDeadline(String orgid, Integer deadlineDay){ //è·åä»»å¡ä¿¡æ¯ ServiceTask st = new ServiceTask(); st.setDelFlag("0"); st.setLongTask(1); st.setNexttaskflag("1"); st.setOrgid(orgid); List<ServiceTask> serviceTasks = serviceTaskMapper.selectServiceTaskList(st); for (ServiceTask serviceTask : serviceTasks) { deadlineDay = -deadlineDay; Date deadline = DateUtils.addDays(new Date(), deadlineDay); //éè¿ä»»å¡IDæ¿å°æ£è ä¿¡æ¯,å¹¶ä¸é访æ¶é´å¾æ¯ä»å¤©ä¹åç ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity(); serviceSubtaskVO.setOrgid(orgid); serviceSubtaskVO.setSendstate(7L); //åªæ«æé¦æ¬¡é访ç serviceSubtaskVO.setVisitCount(1); serviceSubtaskVO.setTaskid(serviceTask.getTaskid()); serviceSubtaskVO.setEndOutHospTime(deadline); List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); log.info("ãdealSubtaskDeadlineãè·åå°{}ä¸ªè¶ æ¶ä»»å¡", serviceSubtaskList.size()); log.info("ãdealSubtaskDeadlineãè·åå°{}ä¸ªè¶ æ¶ä»»å¡, taskid={}", serviceSubtaskList.size(), serviceTask.getTaskid()); for (ServiceSubtask serviceSubtask : serviceSubtaskList) { PatMedInhosp patMedInhospVo = new PatMedInhosp(); patMedInhospVo.setOrgid(serviceSubtask.getOrgid()); patMedInhospVo.setInhospid(serviceSubtask.getInhospid()); List<PatMedInhosp> patMedInhospList = iPatMedInhospService.selectPatMedInhospList(patMedInhospVo); PatMedInhosp patMedInhosp = new PatMedInhosp(); patMedInhosp.setInhospid(serviceSubtask.getInhospid()); List<PatMedInhosp> patMedInhospList = iPatMedInhospService.selectPatMedInhospList(patMedInhosp); if (patMedInhospList.size() > 0) { serviceSubtask.setIsVisitAgain(2); serviceSubtask.setRemark(StringUtils.isNotEmpty(serviceSubtask.getRemark()) ? serviceSubtask.getRemark() + ";æ£è åå ¥é¢äº" : "æ£è åå ¥é¢äº"); serviceSubtask.setSendstate(4L); serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); //return "æ é忬¡éè®¿ï¼æ£è åå ¥é¢äº"; if (!patMedInhospList.isEmpty()) { patMedInhosp = patMedInhospList.get(0); }else { continue; } if(ObjectUtils.isEmpty(serviceTask.getNexttaskid())){ continue; } ServiceTask nextServiceTask = serviceTaskMapper.selectServiceTaskByTaskid(serviceTask.getNexttaskid()); PatArchive patArchive = patArchiveService.selectPatArchiveByPatid(serviceSubtask.getPatid()); String config = configService.selectConfigByKey("visit.early.day"); Integer type = 1; //æ°å¢å次éè®¿ä»»å¡ ServiceSubtask serviceSubtaskAgain = DtoConversionUtils.sourceToTarget(serviceSubtask, ServiceSubtask.class); ServiceSubtask serviceSubtaskAgain = iPatMedInhospService.boxedServiceSubtask(nextServiceTask, patMedInhosp, patArchive, config, type); serviceSubtaskAgain.setId(null); serviceSubtaskAgain.setUpid(serviceSubtask.getId().intValue()); serviceSubtaskAgain.setVisitCount(serviceSubtask.getVisitCount() + 1); @@ -1810,11 +1827,11 @@ int i = serviceSubtaskMapper.insertServiceSubtask(serviceSubtaskAgain); if (i == 1) { //忬¡é访任å¡å建æååï¼å任塿¹ä¸ºå¤±è´¥ç¶æ serviceSubtask.setIsVisitAgain(2); serviceSubtask.setSendstate(5L); serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); } } } } } ruoyi-quartz/src/main/resources/mapper/quartz/CollectHISMapper.xml
@@ -826,6 +826,7 @@ o.paname, o.opreqid, o.opreqcode, o.canceltime, o.opsstatus, o.optypecode, o.optypename, @@ -887,7 +888,7 @@ o.nurse_name , o.check_flag , o.long_task_reason, o.opid , null as opid , o.opcode , o.opdesc, o.oplevelcode , @@ -897,6 +898,9 @@ where 1=1 <if test="orgid != null and orgid != ''"> AND o.orgid = #{orgid} </if> <if test="opreqid != null and opreqid != ''"> AND o.opreqid = #{opreqid} </if> <if test="lastStartTime != null and lastStartTime != ''"> and to_char(o.last_Update_Time, 'YYYY-MM-DD HH24:MI:SS') >= #{lastStartTime} @@ -910,7 +914,7 @@ resultMap="PatMedOperationItemResult"> select oi.operationid, oi.opid, null as opid, oi.opcode, oi.opdesc, oi.main_flag, @@ -940,6 +944,9 @@ <if test="opid != null and opid != ''"> AND oi.opid = #{opid} </if> <if test="operationid != null and operationid != ''"> AND oi.operationid = #{operationid} </if> <if test="lastStartTime != null and lastStartTime != ''"> and oi.last_Update_Time >= to_date(#{lastStartTime}, 'YYYY-MM-DD HH24:MI:SS') </if> ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
@@ -291,7 +291,7 @@ and d.del_flag = 0 and ud.del_flag = 0 <if test="orgid != null">and d.orgid = #{orgid} and ud.orgid = #{orgid}</if> <if test="campusid != null">and d.campusid = #{campusid} and ud.campusid = #{campusid}</if> <if test="campusid != null">and d.campusid = #{campusid}</if> <if test="userId != null">and ud.user_id = #{userId}</if> <if test="deptType != null and deptType != ''">and d.dept_type = #{deptType}</if> </select> smartor/src/main/java/com/smartor/domain/PatSatisfaction.java
@@ -8,6 +8,7 @@ import lombok.Data; import java.util.Date; import java.util.List; /** * æ£è 满æåº¦å¯¹è±¡ pat_satisfaction @@ -155,6 +156,9 @@ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date endTime; @ApiModelProperty(value = "主é®Idéå") private List<Long> ids; /** * pageNum */ smartor/src/main/java/com/smartor/domain/entity/ServiceSubtaskEntity.java
@@ -799,4 +799,10 @@ // @Excel(name = " åéç¶æ 1 被é¢å(å¨ä»»å¡ä¸æ¯æ°å»ºï¼å¨æå¡ä¸æ¯è¢«é¢å) 2 å¾ åé 3 å·²åé 4 䏿§è¡ 5 åé失败 6 已宿\") ") @ApiModelProperty(value = "页é¢å±ç¤ºç¶æ ï¼1ï¼å¾ é访ï¼1 被é¢åã2 å¾ åéã3 å·²åéã5 åé失败ã7ãè¶ æ¶ï¼ï¼2ï¼å·²å®æï¼ 6 已宿ï¼ã3ï¼æ éé访ï¼4 䏿§è¡ï¼") private Long sendstateView; @ApiModelProperty(value = "ææ¯è®°å½id 对åºpat_med_operation_item.id") private Long operationItemId; @ApiModelProperty(value = "ææ¯è®°å½idéå") private List<Long> operationItemIds; } smartor/src/main/java/com/smartor/mapper/PatMedOperationItemMapper.java
@@ -53,6 +53,14 @@ public int updatePatMedOperationItem(PatMedOperationItem patMedOperationItem); /** * ä¿®æ¹æ£è æ£æ¥æ£éªè®°å½å * * @param patMedOperationItem æ£è æ£æ¥æ£éªè®°å½å * @return ç»æ */ public int updatePatMedOperationItemByOperationid(PatMedOperationItem patMedOperationItem); /** * å 餿£è æ£æ¥æ£éªè®°å½å * * @param id æ£è æ£æ¥æ£éªè®°å½åä¸»é® @@ -77,6 +85,22 @@ public int deleteHardPatMedOperationItemByOpId(String opid); /** * å 餿£è æ£æ¥æ£éªè®°å½å * * @param operationid æ£è æ£æ¥æ£éªè®°å½åä¸»é® * @return ç»æ */ public int deletePatMedOperationItemByOperationid(Long operationid); /** * å 餿£è æ£æ¥æ£éªè®°å½å * * @param opid æ£è æ£æ¥æ£éªè®°å½åä¸»é® * @return ç»æ */ public int deleteSoftPatMedOperationItemByOpId(String opid); /** * æ¥è¯¢æ£è æ£æ¥æ£éªè®°å½åå表 * * @param patMedOperationItem æ£è æ£æ¥æ£éªè®°å½å smartor/src/main/java/com/smartor/service/IPatSatisfactionService.java
@@ -40,6 +40,14 @@ public int insertPatSatisfaction(PatSatisfaction patSatisfaction); /** * æ¹éæ°å¢æ£è 满æåº¦ * * @param patSatisfactions æ£è 满æåº¦ * @return ç»æ */ public int batchInsert(List<PatSatisfaction> patSatisfactions); /** * ä¿®æ¹æ£è 满æåº¦ * * @param patSatisfaction æ£è 满æåº¦ smartor/src/main/java/com/smartor/service/IServiceExternalService.java
@@ -119,6 +119,12 @@ public Boolean addOperationInfo(@RequestBody Map dataMap); /** * æ¤éææ¯ä¿¡æ¯ */ public Boolean cancelOperationInfo(@RequestBody Map dataMap); /** * æ°å¢å»çç»å»ç */ public Boolean addMedicalTeam(Map dataMap); smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -300,7 +300,7 @@ } catch (Exception e) { log.error("人åå ¥é¢ç§å®¤å¤çåºå¼å¸¸äºï¼{}", e.getMessage()); patMedInhosp1.setInDeptcheckFlag("2"); patMedInhosp1.setLongTaskReason("人åå ¥é¢ç§å®¤å¤çåºå¼å¸¸äºï¼" + e.getMessage()); patMedInhosp1.setLongTaskReason("人åå ¥é¢ç§å®¤å¤çåºå¼å¸¸äº"); patMedInhospMapper.updatePatMedInhosp(patMedInhosp1); } } @@ -727,7 +727,7 @@ //åå ¥é¢é»è¾ //æ¯å® åºé¢é¦æ¬¡ï¼7天ï¼é访ä¸å®è¦å boolean firstVisit = false; if (orgId.equals("47255004333112711A1001") && serviceSubtask1.getVisitCount() != null && serviceSubtask1.getVisitCount() == 1) { if (orgId.equals("47255004333112711A1001")) { firstVisit = true; } if (!firstVisit) { @@ -865,7 +865,7 @@ if (CollectionUtils.isEmpty(serviceTasks)) { log.info("è¯¥ææ¯å¯¹åºææ¯ç级çé¿æä»»å¡ä¸åå¨,ä»»å¡ID为ï¼{}", taskid); patMedOperationItem.setOpercheckFlag("2"); patMedOperationItem.setLongTaskReason(longTaskReason + " & è¯¥ææ¯å¯¹åºææ¯ç级çé¿æä»»å¡ä¸åå¨,ä»»å¡ID为:" + taskid); patMedOperationItem.setLongTaskReason(" & è¯¥ææ¯å¯¹åºææ¯ç级çé¿æä»»å¡ä¸åå¨,ä»»å¡ID为:" + taskid +";"); patMedOperationItemMapper.updatePatMedOperationItem(patMedOperationItem); return; } else { @@ -971,7 +971,7 @@ PatMedOperationItem patMedOperationItem2 = new PatMedOperationItem(); patMedOperationItem2.setId(patMedOperationItem.getId()); patMedOperationItem2.setOpercheckFlag("2"); patMedOperationItem2.setRemark("çæåä»»å¡å¤±è´¥ 4"); patMedOperationItem2.setLongTaskReason("çæåä»»å¡å¤±è´¥ 4;"); patMedOperationItemMapper.updatePatMedOperationItem(patMedOperationItem2); } } catch (Exception e) { @@ -981,7 +981,7 @@ PatMedOperationItem patMedOperationItem2 = new PatMedOperationItem(); patMedOperationItem2.setId(patMedOperationItem.getId()); patMedOperationItem2.setOpercheckFlag("2"); patMedOperationItem2.setRemark("çæå任塿¥éåæ» 4"); patMedOperationItem2.setLongTaskReason("çæå任塿¥éåæ» 4;"); patMedOperationItemMapper.updatePatMedOperationItem(patMedOperationItem2); e.printStackTrace(); } @@ -1188,7 +1188,7 @@ newDate = addDays(patMedInhosp1.getEndtime(), serviceTask.getSendDay().intValue()); } else { patMedOperationItem.setOpercheckFlag("2"); patMedOperationItem.setRemark(patMedOperationItem.getRemark() + "& 该æ£è ææ¯åºé¢æ¶é´ä¸ºç©º,ææ¯è¯¦æ ID为:" + patMedOperationItem.getId()); patMedOperationItem.setLongTaskReason("该æ£è ææ¯åºé¢æ¶é´ä¸ºç©º,ææ¯è¯¦æ ID为:" + patMedOperationItem.getId() + ";"); patMedOperationItemMapper.updatePatMedOperationItem(patMedOperationItem); // patMedInhosp1.setDeptcheckFlag("2"); // patMedInhosp1.setRemark(patMedInhosp1.getRemark() + "& 该æ£è ææ¯åºé¢æ¶é´ä¸ºç©º,åºé¢è®°å½ID为:" + patMedInhosp1.getInhospid()); @@ -1251,7 +1251,7 @@ } //æ¯å® åºé¢é¦æ¬¡ï¼7天ï¼é访ä¸å®è¦å boolean firstVisit = false; if (serviceSubtask1.getOrgid().equals("47255004333112711A1001") && serviceSubtask1.getVisitCount() != null && serviceSubtask1.getVisitCount() == 1) { if (serviceSubtask1.getOrgid().equals("47255004333112711A1001")) { firstVisit = true; } if (!firstVisit) { @@ -1324,7 +1324,7 @@ if (CollectionUtils.isEmpty(serviceTaskopers) || serviceTaskopers.size() == 0) { PatMedOperationItem patMedOperationItem = patMedOperationItemMapper.selectPatMedOperationItemById(opItem.getId()); patMedOperationItem.setOpercheckFlag("2"); patMedOperationItem.setLongTaskReason(patMedOperationItem.getLongTaskReason() + "ææ£çææ¯æªé ç½®é¿æä»»å¡;"); patMedOperationItem.setLongTaskReason("ææ£çææ¯æªé ç½®é¿æä»»å¡;"); patMedOperationItemMapper.updatePatMedOperationItem(patMedOperationItem); } else { for (ServiceTaskoper serviceTaskoper : serviceTaskopers) { smartor/src/main/java/com/smartor/service/impl/PatSatisfactionServiceImpl.java
@@ -5,7 +5,11 @@ import java.util.*; import java.util.stream.Collectors; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.entity.SysUserDept; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.utils.Arith; import com.ruoyi.common.utils.ArrayListUtils; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DtoConversionUtils; import com.smartor.domain.*; @@ -19,6 +23,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.smartor.service.IPatSatisfactionService; import static com.ruoyi.common.utils.SecurityUtils.getLoginUser; /** * æ£è 满æåº¦Serviceä¸å¡å±å¤ç @@ -101,6 +107,50 @@ } /** * æ°å¢æ£è 满æåº¦ * * @param patSatisfactions æ£è 满æåº¦ * @return ç»æ */ @Override public int batchInsert(List<PatSatisfaction> patSatisfactions) { if(CollectionUtils.isEmpty(patSatisfactions)){ return 0; } List<Long> ids = patSatisfactions.stream().map(PatSatisfaction::getId). distinct().collect(Collectors.toList()); List<PatSatisfaction> patSatisfactionsOld = new ArrayList<>(); PatSatisfaction patSatisfactionVo = new PatSatisfaction(); patSatisfactionVo.setIds(ids); patSatisfactionsOld = patSatisfactionMapper.selectPatSatisfactionList(patSatisfactionVo); Map<String, List<PatSatisfaction>> maps = ArrayListUtils.splitListsById(patSatisfactions, patSatisfactionsOld, PatSatisfaction::getId); //åªå¨patSatisfactionsçæ°æ®ï¼æ§è¡æ°å¢æä½ List<PatSatisfaction> addItems = maps.get("onlyIn1"); //åªå¨patSatisfactionsOldçæ°æ®ï¼æ§è¡å é¤æä½ // List<PatSatisfaction> delItems = maps.get("onlyIn2"); //éå çæ°æ®ï¼æ§è¡æ´æ°æä½ List<PatSatisfaction> editItems = maps.get("common"); Integer count = 0; LoginUser loginUser = getLoginUser(); SysUser user = loginUser.getUser(); for (PatSatisfaction patSatisfaction0 : editItems) { patSatisfaction0.setUpdateBy(user.getNickName()); patSatisfaction0.setUpdateTime(DateUtils.getNowDate()); count = count + patSatisfactionMapper.updatePatSatisfaction(patSatisfaction0); } for (PatSatisfaction patSatisfaction1 : addItems) { patSatisfaction1.setCreateBy(user.getNickName()); patSatisfaction1.setOrgid(user.getOrgid()); patSatisfaction1.setCreateTime(DateUtils.getNowDate()); patSatisfaction1.setUpdateTime(DateUtils.getNowDate()); count = count + patSatisfactionMapper.insertPatSatisfaction(patSatisfaction1); } return count; } /** * ä¿®æ¹æ£è 满æåº¦ * * @param patSatisfaction æ£è 满æåº¦ smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
@@ -816,10 +816,16 @@ patMedInhosp1.setDiagname(StringUtils.isNotEmpty(patMedInhosp1.getLeavediagname()) ? patMedInhosp1.getLeavediagname() : hospPatientDiagnoseInfos2.get(0).getZhenDuanMC()); } String orgid = ObjectUtils.isNotEmpty(BingRenXX) && ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGID")) ? BingRenXX.get("ZuZhiJGID").toString() : null; if(StringUtils.isNotEmpty(orgid) && orgid.equals("47246103233112211A1001")){ //ç¼äºäºé¢ ä½é¢è®°å½ä¸æ´æ°ç¶æ }else { patMedInhosp1.setInhospstate("1"); } if (CollectionUtils.isNotEmpty(patMedInhospList)) { patMedInhosp1.setUpdateTime(new Date()); patMedInhosp1.setOrgid(ObjectUtils.isNotEmpty(BingRenXX) && ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGID")) ? BingRenXX.get("ZuZhiJGID").toString() : null); patMedInhosp1.setOrgid(orgid); if (CollectionUtils.isNotEmpty(noLongTask) && noLongTask.contains(patMedInhosp1.getOrgid())) { //ä¸éè¦é¿æä»»å¡é访 patMedInhosp1.setFuflag("0"); @@ -832,7 +838,7 @@ patMedInhosp1.setHospitalcode(ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGID")) ? BingRenXX.get("ZuZhiJGID").toString() : null); patMedInhosp1.setLeavehospitaldistrictname(ObjectUtils.isNotEmpty(BingRenXX.get("DangQianBQMC")) ? BingRenXX.get("DangQianBQMC").toString() : null); patMedInhosp1.setLeavehospitaldistrictcode(ObjectUtils.isNotEmpty(BingRenXX.get("DangQianBQID")) ? BingRenXX.get("DangQianBQID").toString() : null); patMedInhosp1.setOrgid(ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGID")) ? BingRenXX.get("ZuZhiJGID").toString() : null); patMedInhosp1.setOrgid(orgid); //丽水æ é¢åºï¼é»è®¤å¼æ¯ 1 patMedInhosp1.setCampusid("1"); patMedInhosp1.setPatno(ObjectUtils.isNotEmpty(BingRenXX.get("BingRenID")) ? BingRenXX.get("BingRenID").toString() : null); @@ -1514,6 +1520,81 @@ return true; } @Override public Boolean cancelOperationInfo(Map dataMap) { log.info("ServiceExternalServiceImpl---cancelOperationInfoçæ¤éçå¼ä¸ºï¼{}", dataMap); Map yeWuXX = (Map) dataMap.get("YeWuXX"); Map<String, Object> BingRenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("BingRenXX") : null; ExternalInHospPatientInfo externalInHospPatientInfo = BeanUtil.mapToBean(BingRenXX, ExternalInHospPatientInfo.class, true); PatArchive patArchive = addPatArchive(externalInHospPatientInfo, null, null); //ææ¯æ¤é Map<String, Object> sscx = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("ShouShuCX") : null; ExternalOperationInfo externalOperationInfo = null; if (ObjectUtils.isNotEmpty(sscx)) externalOperationInfo = BeanUtil.mapToBean(sscx, ExternalOperationInfo.class, true); PatMedOperation patMedOperation = new PatMedOperation(); patMedOperation.setPatid(patArchive.getId()); patMedOperation.setOrgid(patArchive.getOrgid()); patMedOperation.setOpreqcode(externalOperationInfo.getShenQingDID()); //æ¥è¯¢ä¸ä¸ï¼è¯¥æ£è æ¯å¦å·²ç»æè¿äºæ°æ® List<PatMedOperation> patMedOperations = patMedOperationMapper.selectPatMedOperationList(patMedOperation); if (CollectionUtils.isNotEmpty(patMedOperations)) { for(PatMedOperation operation : patMedOperations){ Long id = operation.getId(); //å¦æææ¯æ¤éï¼ç´æ¥å é¤è¯¥æ¡ææ¯ä¿¡æ¯ if (ObjectUtils.isNotEmpty(sscx)) { operation.setId(id); operation.setCheckFlag("1"); operation.setDelFlag("1"); //忶廿¥è¯¢ï¼æ¯å¦å¨subtaskä¸çæä»»å¡ï¼å¦æçæåºå¾ç«é©¬å é¤ // ææ¯é访 PatMedOperationItem pmoi = new PatMedOperationItem(); //è·åéè¦åºé¢ææ¯éè®¿ï¼æªå¤ççæ°æ® pmoi.setOpid(operation.getId().toString()); List<PatMedOperationItem> patMedOperationItems = patMedOperationItemMapper.selectOperationItemList(pmoi); List<Long> operationItemIds = patMedOperationItems.stream() .map(PatMedOperationItem::getId) .filter(Objects::nonNull) .distinct() .collect(Collectors.toList()); //ä¸éè¦æå¡äºï¼éè¦éè¿patidåsendstate=1,2,3,5,7廿¥è¯¢ä¸ä¸ï¼service_subtask鿝妿æ£å¨æ§è¡çä»»å¡ï¼ //æçè¯ï¼ç«å³åäº List<Long> sendstates = Arrays.asList(1L, 2L, 3L, 5L, 7L); List<ServiceSubtask> serviceSubtaskList = new ArrayList<>(); ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity(); serviceSubtaskVO.setOrgid(patArchive.getOrgid()); serviceSubtaskVO.setPatid(patArchive.getId()); serviceSubtaskVO.setSendstates(sendstates); serviceSubtaskVO.setOperationItemIds(operationItemIds); serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); //å»redisä¸ï¼æ¥è¯¢æ¯å¦æsubidï¼æçè¯ç§»é¤cache-exist if (CollectionUtils.isNotEmpty(serviceSubtaskList)) { for (ServiceSubtask serviceSubtask : serviceSubtaskList) { log.info("éè¦ç§»é¤çsubId为ï¼{}", serviceSubtask.getId().toString()); serviceSubtask.setSendstate(4L); serviceSubtask.setRemark("ææ¯æ¤é"); serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); 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()); } } operation.setUpdateTime(new Date()); patMedOperationMapper.updatePatMedOperation(operation); patMedOperationItemMapper.deleteSoftPatMedOperationItemByOpId(operation.getOpid()); } } } return true; } //æ°å¢æ£è åºæ¬ä¿¡æ¯ private PatArchive addPatArchive(ExternalInHospPatientInfo externalInHospPatientInfo, ExternalInHospPatientAddrInfo externalInHospPatientAddrInfo, ExternalInHospPatientLiaisonInfo externalInHospPatientLiaisonInfo) { Date parse = null; @@ -2007,6 +2088,7 @@ return true; case "SM_SQ_CheXiao": log.info("ææ¯æ¤éå ¥åç±»å为ï¼{}", type); cancelOperationInfo(dataMap); return true; case "TJ_YW_BaoGaoXX": log.info("使£æ¥åå ¥åç±»å为ï¼{}", type); smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -706,8 +706,12 @@ patMedInhosp.setInhospstate("0"); List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp); PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(serviceSubtask1.getPatid()); if (patMedInhospList.size() > 0) { //æ¯å® æ°å¢å次é访ä¸è½è§¦åæ£è åå ¥é¢ boolean inhospAgain = true; if (serviceSubtask1.getOrgid().equals("47255004333112711A1001")) { inhospAgain = false; } if (patMedInhospList.size() > 0 && inhospAgain) { serviceSubtask1.setIsVisitAgain(2); serviceSubtask1.setRemark(StringUtils.isNotEmpty(serviceSubtask.getRemark()) ? serviceSubtask.getRemark() + ";æ£è åå ¥é¢äº" : "æ£è åå ¥é¢äº"); serviceSubtask1.setSendstate(4L); @@ -2887,6 +2891,12 @@ collect = rawData.stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getDrcode()).orElse("Unknown"))); break; case "management_doctor_code": rawData = rawData.stream() .peek(item -> { item.setDrname(item.getManagementDoctor()); item.setDrcode(item.getManagementDoctorCode()); }) .collect(Collectors.toList()); collect = rawData.stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getManagementDoctorCode()).orElse("Unknown"))); break; case "deptcode": smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml
@@ -246,6 +246,7 @@ AND a.del_flag = 0 AND b.del_flag = 0 AND a.idcardno IS NOT NULL <if test="inhospid != null">and b.inhospid = #{inhospid}</if> <if test="startOutHospTime != null ">and date_format(b.endtime,'%y%m%d') >= date_format(#{startOutHospTime},'%y%m%d') </if> smartor/src/main/resources/mapper/smartor/PatMedOperationItemMapper.xml
@@ -309,6 +309,86 @@ where id = #{id} </update> <update id="updatePatMedOperationItemByOperationid" parameterType="com.smartor.domain.PatMedOperationItem"> update pat_med_operation_item <trim prefix="SET" suffixOverrides=","> <if test="opid != null">opid = #{opid}, </if> <if test="opcode != null">opcode = #{opcode}, </if> <if test="opdesc != null">opdesc = #{opdesc}, </if> <if test="mainFlag != null">main_flag = #{mainFlag}, </if> <if test="incitypecode != null">incitypecode = #{incitypecode}, </if> <if test="incitypedesc != null">incitypedesc = #{incitypedesc}, </if> <if test="oplevelcode != null">oplevelcode = #{oplevelcode}, </if> <if test="opleveldesc != null">opleveldesc = #{opleveldesc}, </if> <if test="opposition != null">opposition = #{opposition}, </if> <if test="delFlag != null">del_flag = #{delFlag}, </if> <if test="updateBy != null">update_by = #{updateBy}, </if> <if test="updateTime != null">update_time = #{updateTime}, </if> <if test="createBy != null">create_by = #{createBy}, </if> <if test="createTime != null">create_time = #{createTime}, </if> <if test="isupload != null">isupload = #{isupload}, </if> <if test="uploadTime != null">upload_time = #{uploadTime}, </if> <if test="orgid != null">orgid = #{orgid}, </if> <if test="pguid != null">pguid = #{pguid}, </if> <if test="guid != null">guid = #{guid}, </if> <if test="pid != null">pid = #{pid}, </if> <if test="opercheckFlag != null">opercheck_flag = #{opercheckFlag}, </if> <if test="longTaskReason != null">long_task_reason = #{longTaskReason}, </if> <if test="inhospstate != null">inhospstate = #{inhospstate}, </if> <if test="serialnum != null">serialnum = #{serialnum}, </if> </trim> where operationid = #{operationid} and opcode = #{opcode} </update> <insert id="insertPatMedOperationItems"> insert into pat_med_operation_item <trim prefix="(" suffix=")" suffixOverrides=","> @@ -442,7 +522,25 @@ <delete id="deleteHardPatMedOperationItemByOpId" parameterType="String"> delete from pat_med_operation_item where opid = #{opid} and opercheck_flag != 1 </delete> <update id="deletePatMedOperationItemByOperationid" parameterType="Long"> update pat_med_operation_item <trim prefix="SET" suffixOverrides=","> del_flag =1 </trim> where operationid = #{operationid} and opercheck_flag != 1 </update> <update id="deleteSoftPatMedOperationItemByOpId" parameterType="String"> update pat_med_operation_item <trim prefix="SET" suffixOverrides=","> del_flag =1 </trim> where opid = #{opid} </update> <select id="selectOperationItemList" parameterType="com.smartor.domain.PatMedOperationItem" resultMap="PatMedOperationItemResult"> @@ -457,7 +555,7 @@ from pat_med_operation pmo join pat_med_operation_item pmoi on pmoi.opid = pmo.opid left join pat_med_inhosp pmi join pat_med_inhosp pmi on pmo.serialnum = pmi.serialnum where pmo.del_flag = '0' smartor/src/main/resources/mapper/smartor/PatSatisfactionMapper.xml
@@ -114,6 +114,13 @@ <if test="endTime != null"> AND date_format(update_time,'%y%m%d') <= date_format(#{endTime},'%y%m%d') </if> <if test="ids != null and ids.size()>0"> AND id IN <foreach collection="ids" item="idItem" open="(" separator="," close=")"> #{idItem} </foreach> </if> </select> <select id="selectPatSatisfactionById" parameterType="Long" smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -358,6 +358,12 @@ #{itemTaskId} </foreach> </if> <if test="operationItemIds != null and operationItemIds.size() > 0"> AND operation_item_id IN <foreach collection="operationItemIds" item="operationItemIdItem" open="(" separator="," close=")"> #{operationItemIdItem} </foreach> </if> <if test="templateid != null and templateid != ''">and templateid = #{templateid}</if> <if test="templatename != null and templatename != ''">and templatename like concat('%', #{templatename}, '%') @@ -483,6 +489,7 @@ <if test="libtemplatename != null ">and libtemplatename = #{libtemplatename}</if> <if test="openid != null ">and openid = #{openid}</if> <if test="sendstate != null ">and sendstate = #{sendstate}</if> <if test="operationItemId != null ">and operation_item_id = #{operationItemId}</if> <if test="drname != null and drname != ''">and drname like concat('%', #{drname}, '%')</if> <if test="taskName != null and taskName != ''">and task_name like concat('%', #{taskName}, '%')</if> <if test="drcode != null and drcode != ''">and (drcode = #{drcode}</if>