ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
@@ -20,9 +20,11 @@ import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.utils.reflect.ReflectUtils; import com.ruoyi.quartz.task.RyTask; import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.system.service.ISysUserDeptService; import com.smartor.domain.*; import com.smartor.domain.VO.HeLibraryCountVO; import com.smartor.domain.VO.ServiceSubtaskCotinueCountVO; import com.smartor.domain.VO.ServiceSubtaskVO; import com.smartor.domain.entity.ServiceSubtaskEntity; @@ -82,6 +84,9 @@ @Autowired private RedisCache redisCache; @Autowired private RyTask ryTask; /** * æ¥è¯¢æ£è éè®¿ä¿¡æ¯ @@ -242,13 +247,12 @@ //@PreAuthorize("@ss.hasPermi('system:taskcall:list')") @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid") @PostMapping("/patItemByCondition") public TableDataInfo patItemByCondition(@RequestBody ServiceSubtaskVO serviceSubtaskVO) { public Map<String, Object> patItemByCondition(@RequestBody ServiceSubtaskVO serviceSubtaskVO) { List<ServiceSubtask> serviceSubtaskList = null; ServiceSubtaskEntity serviceSubtaskEntity = DtoConversionUtils.sourceToTarget(serviceSubtaskVO, ServiceSubtaskEntity.class); serviceSubtaskEntity.setContinueContent(ObjectUtils.isNotEmpty(serviceSubtaskVO.getContinueContent()) ? serviceSubtaskVO.getContinueContent().toString() : null); if (serviceSubtaskEntity != null) { PageUtils.startPageByPost(serviceSubtaskEntity.getPageNum(), serviceSubtaskEntity.getPageSize()); serviceSubtaskEntity.setPageNum(PageUtils.getOffset(serviceSubtaskEntity.getPageNum(), serviceSubtaskEntity.getPageSize())); serviceSubtaskList = serviceSubtaskService.patItem2(serviceSubtaskEntity); } for (ServiceSubtask serviceSubtask : serviceSubtaskList) { @@ -273,7 +277,7 @@ serviceSubtaskService.patItem2(serviceSubtaskEntity); } }); return getDataTable2(total, list); return getDataTable3(total, list); } /** @@ -730,4 +734,16 @@ return map; } @ApiOperation("è·åå½åç¨æ·å®£ææ°éç»è®¡") @PostMapping("/gethelibraryCount") public Map<String, Object> getHeLibraryCount(@RequestBody HeLibraryCountVO heLibraryCountVO) { log.info("è·åå½åç¨æ·å®£ææ°éç»è®¡çå ¥å为ï¼{}", heLibraryCountVO); return serviceSubtaskService.getHeLibraryCount(heLibraryCountVO); } @PostMapping("/test") public void test() { ryTask.dealOutHospInfo(); } } ruoyi-admin/src/main/resources/application-druid.yml
@@ -34,7 +34,7 @@ # password: Hxerp2000 # driverClassName: com.mysql.cj.jdbc.Driver # å ¬å¸æ¬å° url: jdbc:mysql://haiershi.a1.luyouxia.net:23844/smartor_xinhua?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&connectTimeout=120000&socketTimeout=240000 url: jdbc:mysql://haiershi.a1.luyouxia.net:23844/smartor_lishui?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&connectTimeout=120000&socketTimeout=240000 username: smartor password: Smartor.2023 driverClassName: com.mysql.cj.jdbc.Driver ruoyi-admin/src/main/resources/application.yml
@@ -74,7 +74,7 @@ # å½é åèµæºæä»¶è·¯å¾ basename: i18n/messages profiles: active: durid active: druid # æä»¶ä¸ä¼ servlet: smartor/src/main/java/com/smartor/domain/ServiceSubtask.java
@@ -446,7 +446,7 @@ * å°±è¯ç±»åï¼1é¨è¯ 2åºé¢ï¼ */ @Excel(name = " å°±è¯ç±»åï¼1é¨è¯ 2åºé¢ï¼") @ApiModelProperty(value = "å°±è¯ç±»åï¼1é¨è¯ 2åºé¢ 3.ä¸ç 4.å¤é¨å¯¼å ¥ 5æ¥è¯ã5ä½é¢ã7使£ï¼") @ApiModelProperty(value = "å°±è¯ç±»åï¼1é¨è¯ 2åºé¢ 3.ä¸ç 4.å¤é¨å¯¼å ¥ 5æ¥è¯ã6ä½é¢ã7使£ï¼") private String hospType; smartor/src/main/java/com/smartor/domain/VO/HeLibraryCountVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,40 @@ package com.smartor.domain.VO; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; import java.util.List; @Data @ApiModel("宣æç»è®¡æ¥è¯¢è¯·æ±å¯¹è±¡") public class HeLibraryCountVO { @ApiModelProperty(value = "ç åºCodeéå") private List<String> hospitaldistrictcodes; @ApiModelProperty(value = "ç§å®¤Codeéå") private List<String> deptcodes; @JsonFormat(pattern = "yyyy-MM-dd") @ApiModelProperty(value = "åºé¢æ¶é´") private Date endtime; @JsonFormat(pattern = "yyyy-MM-dd") @ApiModelProperty(value = "å ¥é¢æ¶é´") private Date starttime; @JsonFormat(pattern = "yyyy-MM-dd") @ApiModelProperty(value = "宣æåéæ¶é´") private Date visittime; @JsonFormat(pattern = "yyyy-MM-dd") @ApiModelProperty(value = "宣æå®ææ¶é´") private Date finishtime; @ApiModelProperty(value = "å°±è¯ç±»åï¼1é¨è¯ 2åºé¢ 3.ä¸ç 4.å¤é¨å¯¼å ¥ 5æ¥è¯ã6ä½é¢ã7使£ï¼") private String hospType; } smartor/src/main/java/com/smartor/domain/entity/ServiceSubtaskEntity.java
@@ -105,6 +105,7 @@ */ @ApiModelProperty(value = "å 天忶ç") private Integer rateDay; /** * æ§å« */ smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
@@ -2,6 +2,7 @@ import com.smartor.domain.*; import com.smartor.domain.VO.PatSatisfactionReqVO; import com.smartor.domain.VO.HeLibraryCountVO; import com.smartor.domain.VO.ServiceSubtaskCotinueCountVO; import com.smartor.domain.entity.ServiceSubtaskEntity; import com.smartor.domain.entity.ServiceSubtaskSatisfactionEntity; @@ -211,4 +212,12 @@ */ List<Map<String, Object>> getContinueNurseCountByDept(ServiceSubtaskCotinueCountVO vo); /** * 宣æç»è®¡ï¼æç åºæç§å®¤åç»ç»è®¡åéæåçå已读ç * * @param heLibraryCountVO æ¥è¯¢æ¡ä»¶ * @return æ¯ç»çç»è®¡ç»æï¼groupName, sendSuccessCount, totalCount, readCountï¼ */ List<Map<String, Object>> getHeLibraryCount(HeLibraryCountVO heLibraryCountVO); } smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
@@ -3,6 +3,7 @@ import com.ruoyi.common.core.domain.AjaxResult; import com.smartor.domain.*; import com.smartor.domain.ServiceSubtask; import com.smartor.domain.VO.HeLibraryCountVO; import com.smartor.domain.VO.ServiceSubtaskCotinueCountVO; import com.smartor.domain.entity.ServiceSubtaskEntity; import org.springframework.web.bind.annotation.RequestBody; @@ -169,4 +170,6 @@ * @return */ public void setFailSubTaskDefalutVal(Long failDay); public Map<String, Object> getHeLibraryCount(@RequestBody HeLibraryCountVO heLibraryCountVO); } smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -221,168 +221,168 @@ @Override public int dealOutHospInfo(String config) { PatMedInhosp pmks = new PatMedInhosp(); //è·åéè¦åºé¢é¨é¨éè®¿ï¼æªå¤ççæ°æ® pmks.setDeptcheckFlag("0"); pmks.setInhospstate("1"); pmks.setFuflag("1"); List<PatMedInhosp> patMedInhosps = patMedInhospMapper.selectPatMedInhospList(pmks); log.info("dealOutHospInfoéè¦å¤ççåºé¢é¨é¨æ£è ä¿¡æ¯ï¼{}", CollectionUtils.isNotEmpty(patMedInhosps) ? patMedInhosps.size() : null); for (PatMedInhosp patMedInhosp1 : patMedInhosps) { String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid()); patMedInhosp1.setTagname(tagname); } //ç§å®¤ for (PatMedInhosp patMedInhosp1 : patMedInhosps) { //è·åæ£è ä¿¡æ¯ PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhosp1.getPatid()); if (Objects.isNull(patArchive)) { patMedInhosp1.setDeptcheckFlag("2"); patMedInhosp1.setLongTaskReason("æ£è åºæ¬ä¿¡æ¯ä¸ºç©º"); patMedInhospMapper.updatePatMedInhosp(patMedInhosp1); continue; } try { //æ ¹æ®æ£è æå¨ç§å®¤ï¼è·å该ç§å®¤çé¿æä»»å¡ ServiceTaskdept serviceTaskdept = new ServiceTaskdept(); serviceTaskdept.setLongtask(1L); serviceTaskdept.setDeptCode(patMedInhosp1.getLeaveldeptcode()); serviceTaskdept.setDeptType("1"); serviceTaskdept.setOrgid(patMedInhosp1.getOrgid()); List<ServiceTaskdept> serviceTaskdepts = serviceTaskdeptMapper.selectServiceTaskdeptList(serviceTaskdept); //妿é¨é¨æ¨¡æ¿ä¸ºç©ºï¼å°deptIsNull设置为trueï¼ if (CollectionUtils.isEmpty(serviceTaskdepts) || serviceTaskdepts.size() == 0) { PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid()); patMedInhosp1.setDeptcheckFlag("2"); patMedInhosp1.setLongTaskReason(patMedInhosp.getLongTaskReason() + "该æ£è æå¨ç§å®¤æªé ç½®é¿æä»»å¡;"); patMedInhospMapper.updatePatMedInhosp(patMedInhosp1); } else { for (ServiceTaskdept serviceTaskdept1 : serviceTaskdepts) { writeInSubTask(serviceTaskdept1.getTaskId(), true, patMedInhosp1, patArchive, 1, config); } // patMedInhosp1.setDeptcheckFlag("1"); // PatMedInhosp pmks = new PatMedInhosp(); // //è·åéè¦åºé¢é¨é¨éè®¿ï¼æªå¤ççæ°æ® // pmks.setDeptcheckFlag("0"); // pmks.setInhospstate("1"); // pmks.setFuflag("1"); // List<PatMedInhosp> patMedInhosps = patMedInhospMapper.selectPatMedInhospList(pmks); // log.info("dealOutHospInfoéè¦å¤ççåºé¢é¨é¨æ£è ä¿¡æ¯ï¼{}", CollectionUtils.isNotEmpty(patMedInhosps) ? patMedInhosps.size() : null); // for (PatMedInhosp patMedInhosp1 : patMedInhosps) { // String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid()); // patMedInhosp1.setTagname(tagname); // } // // //ç§å®¤ // for (PatMedInhosp patMedInhosp1 : patMedInhosps) { // //è·åæ£è ä¿¡æ¯ // PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhosp1.getPatid()); // if (Objects.isNull(patArchive)) { // patMedInhosp1.setDeptcheckFlag("2"); // patMedInhosp1.setLongTaskReason("æ£è åºæ¬ä¿¡æ¯ä¸ºç©º"); // patMedInhospMapper.updatePatMedInhosp(patMedInhosp1); // continue; // } // try { // //æ ¹æ®æ£è æå¨ç§å®¤ï¼è·å该ç§å®¤çé¿æä»»å¡ // ServiceTaskdept serviceTaskdept = new ServiceTaskdept(); // serviceTaskdept.setLongtask(1L); // serviceTaskdept.setDeptCode(patMedInhosp1.getLeaveldeptcode()); // serviceTaskdept.setDeptType("1"); // serviceTaskdept.setOrgid(patMedInhosp1.getOrgid()); // List<ServiceTaskdept> serviceTaskdepts = serviceTaskdeptMapper.selectServiceTaskdeptList(serviceTaskdept); // //妿é¨é¨æ¨¡æ¿ä¸ºç©ºï¼å°deptIsNull设置为trueï¼ // if (CollectionUtils.isEmpty(serviceTaskdepts) || serviceTaskdepts.size() == 0) { // PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid()); // patMedInhosp1.setDeptcheckFlag("2"); // patMedInhosp1.setLongTaskReason(patMedInhosp.getLongTaskReason() + "该æ£è æå¨ç§å®¤æªé ç½®é¿æä»»å¡;"); // patMedInhospMapper.updatePatMedInhosp(patMedInhosp1); } } catch (Exception e) { e.printStackTrace(); log.error("人åç§å®¤å¤çåºå¼å¸¸äºï¼{}", e.getMessage()); patMedInhosp1.setDeptcheckFlag("2"); patMedInhosp1.setLongTaskReason("人åç§å®¤å¤çå¼å¸¸ï¼" + e.getMessage()); patMedInhospMapper.updatePatMedInhosp(patMedInhosp1); } } // } else { // for (ServiceTaskdept serviceTaskdept1 : serviceTaskdepts) { // writeInSubTask(serviceTaskdept1.getTaskId(), true, patMedInhosp1, patArchive, 1, config); // } //// patMedInhosp1.setDeptcheckFlag("1"); //// patMedInhospMapper.updatePatMedInhosp(patMedInhosp1); // } // // } catch (Exception e) { // e.printStackTrace(); // log.error("人åç§å®¤å¤çåºå¼å¸¸äºï¼{}", e.getMessage()); // patMedInhosp1.setDeptcheckFlag("2"); // patMedInhosp1.setLongTaskReason("人åç§å®¤å¤çå¼å¸¸ï¼" + e.getMessage()); // patMedInhospMapper.updatePatMedInhosp(patMedInhosp1); // } // } //æ ¹æ®æ£è æå¨ç åºï¼è·å该ç åºçé¿æä»»å¡,æ°åå»é¢å¯ä»¥å ä¸ç¨æ ¹æ®ç åºåç¾ç æ¥å if (!active.equals("xh")) { PatMedInhosp pmbq = new PatMedInhosp(); //è·åéè¦åºé¢é¨é¨éè®¿ï¼æªå¤ççæ°æ® pmbq.setWardcheckFlag("0"); pmbq.setInhospstate("1"); pmbq.setFuflag("1"); List<PatMedInhosp> patMedInhospBQs = patMedInhospMapper.selectPatMedInhospList(pmbq); log.info("dealOutHospInfoéè¦å¤ççåºé¢ç åºæ£è ä¿¡æ¯ï¼{}", CollectionUtils.isNotEmpty(patMedInhospBQs) ? patMedInhospBQs.size() : null); for (PatMedInhosp patMedInhosp1 : patMedInhospBQs) { String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid()); patMedInhosp1.setTagname(tagname); } //ç åºæ°æ®å¤ç for (PatMedInhosp pmiBQ1 : patMedInhospBQs) { //è·åæ£è ä¿¡æ¯ PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(pmiBQ1.getPatid()); if (Objects.isNull(patArchive)) { pmiBQ1.setWardcheckFlag("2"); pmiBQ1.setLongTaskReason("æ£è åºæ¬ä¿¡æ¯ä¸ºç©º"); patMedInhospMapper.updatePatMedInhosp(pmiBQ1); continue; } try { ServiceTaskdept serviceTaskdept = new ServiceTaskdept(); serviceTaskdept.setLongtask(1L); serviceTaskdept.setDeptCode(pmiBQ1.getLeavehospitaldistrictcode()); serviceTaskdept.setDeptType("2"); serviceTaskdept.setOrgid(pmiBQ1.getOrgid()); List<ServiceTaskdept> serviceTaskdeptList = serviceTaskdeptMapper.selectServiceTaskdeptList(serviceTaskdept); //妿é¨é¨æ¨¡æ¿ä¸ºç©ºï¼å°deptIsNull设置为trueï¼ if (CollectionUtils.isEmpty(serviceTaskdeptList) || serviceTaskdeptList.size() == 0) { PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(pmiBQ1.getInhospid()); pmiBQ1.setWardcheckFlag("2"); pmiBQ1.setLongTaskReason(patMedInhosp.getLongTaskReason() + "该æ£è æå¨ç åºæªé ç½®é¿æä»»å¡;"); patMedInhospMapper.updatePatMedInhosp(pmiBQ1); } else { for (ServiceTaskdept serviceTaskdept1 : serviceTaskdeptList) { writeInSubTask(serviceTaskdept1.getTaskId(), true, pmiBQ1, patArchive, 2, config); } // pmiBQ1.setWardcheckFlag("1"); // PatMedInhosp pmbq = new PatMedInhosp(); // //è·åéè¦åºé¢é¨é¨éè®¿ï¼æªå¤ççæ°æ® // pmbq.setWardcheckFlag("0"); // pmbq.setInhospstate("1"); // pmbq.setFuflag("1"); // List<PatMedInhosp> patMedInhospBQs = patMedInhospMapper.selectPatMedInhospList(pmbq); // log.info("dealOutHospInfoéè¦å¤ççåºé¢ç åºæ£è ä¿¡æ¯ï¼{}", CollectionUtils.isNotEmpty(patMedInhospBQs) ? patMedInhospBQs.size() : null); // for (PatMedInhosp patMedInhosp1 : patMedInhospBQs) { // String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid()); // patMedInhosp1.setTagname(tagname); // } // // //ç åºæ°æ®å¤ç // for (PatMedInhosp pmiBQ1 : patMedInhospBQs) { // //è·åæ£è ä¿¡æ¯ // PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(pmiBQ1.getPatid()); // if (Objects.isNull(patArchive)) { // pmiBQ1.setWardcheckFlag("2"); // pmiBQ1.setLongTaskReason("æ£è åºæ¬ä¿¡æ¯ä¸ºç©º"); // patMedInhospMapper.updatePatMedInhosp(pmiBQ1); // continue; // } // try { // ServiceTaskdept serviceTaskdept = new ServiceTaskdept(); // serviceTaskdept.setLongtask(1L); // serviceTaskdept.setDeptCode(pmiBQ1.getLeavehospitaldistrictcode()); // serviceTaskdept.setDeptType("2"); // serviceTaskdept.setOrgid(pmiBQ1.getOrgid()); // List<ServiceTaskdept> serviceTaskdeptList = serviceTaskdeptMapper.selectServiceTaskdeptList(serviceTaskdept); // //妿é¨é¨æ¨¡æ¿ä¸ºç©ºï¼å°deptIsNull设置为trueï¼ // if (CollectionUtils.isEmpty(serviceTaskdeptList) || serviceTaskdeptList.size() == 0) { // PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(pmiBQ1.getInhospid()); // pmiBQ1.setWardcheckFlag("2"); // pmiBQ1.setLongTaskReason(patMedInhosp.getLongTaskReason() + "该æ£è æå¨ç åºæªé ç½®é¿æä»»å¡;"); // patMedInhospMapper.updatePatMedInhosp(pmiBQ1); } } catch (Exception e) { e.printStackTrace(); log.error("人åç åºå¤çåºå¼å¸¸äºï¼{}", e.getMessage()); pmiBQ1.setWardcheckFlag("2"); pmiBQ1.setLongTaskReason("人åç åºå¤çå¼å¸¸ï¼" + e.getMessage()); patMedInhospMapper.updatePatMedInhosp(pmiBQ1); } } PatMedInhosp pmjb = new PatMedInhosp(); //è·åéè¦åºé¢ç¾ç éè®¿ï¼æªå¤ççæ°æ® pmjb.setDiagcheckFlag("0"); pmjb.setInhospstate("1"); pmjb.setFuflag("1"); List<PatMedInhosp> patMedInhospJBs = patMedInhospMapper.selectPatMedInhospList(pmjb); log.info("dealOutHospInfoéè¦å¤ççåºé¢ç¾ç æ£è ä¿¡æ¯ï¼{}", CollectionUtils.isNotEmpty(patMedInhospJBs) ? patMedInhospJBs.size() : null); for (PatMedInhosp patMedInhosp1 : patMedInhospJBs) { String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid()); patMedInhosp1.setTagname(tagname); } for (PatMedInhosp pmiJB : patMedInhospJBs) { //è·åæ£è ä¿¡æ¯ PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(pmiJB.getPatid()); if (Objects.isNull(patArchive)) { pmiJB.setDiagcheckFlag("2"); pmiJB.setLongTaskReason("æ£è åºæ¬ä¿¡æ¯ä¸ºç©º"); patMedInhospMapper.updatePatMedInhosp(pmiJB); continue; } try { if (StringUtils.isEmpty(pmiJB.getLeaveicd10code())) { continue; } // æ ¹æ®æ£è çç¾ç ï¼è·å该ç¾ç çé¿æä»»å¡ ServiceTaskdiag serviceTaskdiag = new ServiceTaskdiag(); serviceTaskdiag.setLongtask(1L); serviceTaskdiag.setIcd10code(pmiJB.getLeaveicd10code()); serviceTaskdiag.setOrgid(pmiJB.getOrgid()); List<ServiceTaskdiag> serviceTaskdiags = serviceTaskdiagMapper.selectServiceTaskdiagList(serviceTaskdiag); //妿é¨é¨æ¨¡æ¿ä¸ºç©ºï¼å°deptIsNull设置为trueï¼ if (CollectionUtils.isEmpty(serviceTaskdiags) || serviceTaskdiags.size() == 0) { PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(pmiJB.getInhospid()); pmiJB.setDiagcheckFlag("2"); pmiJB.setLongTaskReason(patMedInhosp.getLongTaskReason() + "ææ£çç¾ç æªé ç½®é¿æä»»å¡;"); patMedInhospMapper.updatePatMedInhosp(pmiJB); } else { for (ServiceTaskdiag serviceTaskdept1 : serviceTaskdiags) { writeInSubTask(serviceTaskdept1.getTaskId(), true, pmiJB, patArchive, 3, config); } // pmiJB.setDiagcheckFlag("1"); // } else { // for (ServiceTaskdept serviceTaskdept1 : serviceTaskdeptList) { // writeInSubTask(serviceTaskdept1.getTaskId(), true, pmiBQ1, patArchive, 2, config); // } //// pmiBQ1.setWardcheckFlag("1"); //// patMedInhospMapper.updatePatMedInhosp(pmiBQ1); // } // // // } catch (Exception e) { // e.printStackTrace(); // log.error("人åç åºå¤çåºå¼å¸¸äºï¼{}", e.getMessage()); // pmiBQ1.setWardcheckFlag("2"); // pmiBQ1.setLongTaskReason("人åç åºå¤çå¼å¸¸ï¼" + e.getMessage()); // patMedInhospMapper.updatePatMedInhosp(pmiBQ1); // } // } // // PatMedInhosp pmjb = new PatMedInhosp(); // //è·åéè¦åºé¢ç¾ç éè®¿ï¼æªå¤ççæ°æ® // pmjb.setDiagcheckFlag("0"); // pmjb.setInhospstate("1"); // pmjb.setFuflag("1"); // List<PatMedInhosp> patMedInhospJBs = patMedInhospMapper.selectPatMedInhospList(pmjb); // log.info("dealOutHospInfoéè¦å¤ççåºé¢ç¾ç æ£è ä¿¡æ¯ï¼{}", CollectionUtils.isNotEmpty(patMedInhospJBs) ? patMedInhospJBs.size() : null); // for (PatMedInhosp patMedInhosp1 : patMedInhospJBs) { // String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid()); // patMedInhosp1.setTagname(tagname); // } // // for (PatMedInhosp pmiJB : patMedInhospJBs) { // //è·åæ£è ä¿¡æ¯ // PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(pmiJB.getPatid()); // if (Objects.isNull(patArchive)) { // pmiJB.setDiagcheckFlag("2"); // pmiJB.setLongTaskReason("æ£è åºæ¬ä¿¡æ¯ä¸ºç©º"); // patMedInhospMapper.updatePatMedInhosp(pmiJB); // continue; // } // try { // if (StringUtils.isEmpty(pmiJB.getLeaveicd10code())) { // continue; // } // // æ ¹æ®æ£è çç¾ç ï¼è·å该ç¾ç çé¿æä»»å¡ // ServiceTaskdiag serviceTaskdiag = new ServiceTaskdiag(); // serviceTaskdiag.setLongtask(1L); // serviceTaskdiag.setIcd10code(pmiJB.getLeaveicd10code()); // serviceTaskdiag.setOrgid(pmiJB.getOrgid()); // // List<ServiceTaskdiag> serviceTaskdiags = serviceTaskdiagMapper.selectServiceTaskdiagList(serviceTaskdiag); // //妿é¨é¨æ¨¡æ¿ä¸ºç©ºï¼å°deptIsNull设置为trueï¼ // if (CollectionUtils.isEmpty(serviceTaskdiags) || serviceTaskdiags.size() == 0) { // PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(pmiJB.getInhospid()); // pmiJB.setDiagcheckFlag("2"); // pmiJB.setLongTaskReason(patMedInhosp.getLongTaskReason() + "ææ£çç¾ç æªé ç½®é¿æä»»å¡;"); // patMedInhospMapper.updatePatMedInhosp(pmiJB); } } catch (Exception e) { e.printStackTrace(); log.error("人åç¾ç å¤çåºå¼å¸¸äºï¼{}", e.getMessage()); pmiJB.setDiagcheckFlag("2"); pmiJB.setLongTaskReason("人åç¾ç å¤çå¼å¸¸ï¼" + e.getMessage()); patMedInhospMapper.updatePatMedInhosp(pmiJB); } } // } else { // for (ServiceTaskdiag serviceTaskdept1 : serviceTaskdiags) { // writeInSubTask(serviceTaskdept1.getTaskId(), true, pmiJB, patArchive, 3, config); // } //// pmiJB.setDiagcheckFlag("1"); //// patMedInhospMapper.updatePatMedInhosp(pmiJB); // } // // } catch (Exception e) { // e.printStackTrace(); // log.error("人åç¾ç å¤çåºå¼å¸¸äºï¼{}", e.getMessage()); // pmiJB.setDiagcheckFlag("2"); // pmiJB.setLongTaskReason("人åç¾ç å¤çå¼å¸¸ï¼" + e.getMessage()); // patMedInhospMapper.updatePatMedInhosp(pmiJB); // } // } // ææ¯é访 PatMedOperationItem pmoi = new PatMedOperationItem(); //è·åéè¦åºé¢ç¾ç éè®¿ï¼æªå¤ççæ°æ® smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java
@@ -264,70 +264,67 @@ // å¤çç¨æ·ä¸é¨é¨çå ³ç³» List businessDepts = (List<?>) dataItem.get("businessDepts"); if (CollectionUtils.isEmpty(businessDepts)) { continue; } if (CollectionUtils.isNotEmpty(businessDepts)) { List<List<String>> deptInfoList = new ArrayList<>(); List<List<String>> hospInfoList = new ArrayList<>(); log.info("------businessDeptsæ¯å¦æå¼ï¼{}", businessDepts.size()); for (Object businessDept : businessDepts) { if (businessDept instanceof Map) { Map<String, Object> businessDeptMap = (Map<String, Object>) businessDept; log.info("------businessDeptMapæ¯å¦æå¼ï¼{}", businessDeptMap); String hisDeptId = getStringValue(businessDeptMap, "deptId"); log.info("------hisDeptIdæ¯å¦æå¼ï¼{}, reqVO.getOrgId()çå¼ä¸º:{}", hisDeptId, reqVO.getCampusId()); //å¨è¿éï¼hisDeptIdå°±æ¯deptCode SysDept sysDept = sysDeptMapper.selectDeptByCode(hisDeptId, reqVO.getOrgId()); log.info("------hisDeptIdæ¯å¦æå¼ï¼{}, reqVO.getCampusId()çå¼ä¸º:{}", hisDeptId, reqVO.getCampusId()); if (Objects.isNull(sysDept)) continue; SysUserDept sysUserDept = new SysUserDept(); sysUserDept.setUserId(sysUser.getUserId()); sysUserDept.setDeptType(sysDept.getDeptType()); sysUserDept.setDeptId(sysDept.getDeptId()); sysUserDept.setDeptCode(sysDept.getDeptCode()); sysUserDept.setDeptName(sysDept.getDeptName()); sysUserDept.setOrgid(sysDept.getOrgid()); sysUserDept.setCreateTime(new Date()); sysUserDept.setDelFlag(0L); List<List<String>> deptInfoList = new ArrayList<>(); List<List<String>> hospInfoList = new ArrayList<>(); log.info("------businessDeptsæ¯å¦æå¼ï¼{}", businessDepts.size()); for (Object businessDept : businessDepts) { if (businessDept instanceof Map) { Map<String, Object> businessDeptMap = (Map<String, Object>) businessDept; log.info("------businessDeptMapæ¯å¦æå¼ï¼{}", businessDeptMap); // Long hisDeptId = (Long) personnelDeptMap.get("deptId"); String hisDeptId = getStringValue(businessDeptMap, "deptId"); log.info("------hisDeptIdæ¯å¦æå¼ï¼{}, reqVO.getOrgId()çå¼ä¸º:{}", hisDeptId, reqVO.getCampusId()); //å¨è¿éï¼hisDeptIdå°±æ¯deptCode SysDept sysDept = sysDeptMapper.selectDeptByCode(hisDeptId, reqVO.getOrgId()); log.info("------hisDeptIdæ¯å¦æå¼ï¼{}, reqVO.getCampusId()çå¼ä¸º:{}", hisDeptId, reqVO.getCampusId()); if (Objects.isNull(sysDept)) continue; SysUserDept sysUserDept = new SysUserDept(); sysUserDept.setUserId(sysUser.getUserId()); sysUserDept.setDeptType(sysDept.getDeptType()); sysUserDept.setDeptId(sysDept.getDeptId()); sysUserDept.setDeptCode(sysDept.getDeptCode()); sysUserDept.setDeptName(sysDept.getDeptName()); sysUserDept.setOrgid(sysDept.getOrgid()); sysUserDept.setCreateTime(new Date()); sysUserDept.setDelFlag(0L); //夿ä¸ä¸ç¨æ·-é¨é¨å ³ç³»æ¯ä¸æ¯å·²ç»åå¨äºï¼æ 论æ°ç¨æ·è¿æ¯èç¨æ·é½éè¦å»éï¼ if (ObjectUtils.isNotEmpty(sysUser.getUserId()) && ObjectUtils.isNotEmpty(sysDept)) { SysUserDept sud = new SysUserDept(); sud.setUserId(sysUser.getUserId()); sud.setDeptId(sysDept.getDeptId()); sud.setOrgid(sysDept.getOrgid()); List<SysUserDept> sysUserDepts = sysUserDeptMapper.selectSysUserDeptList(sud); if (CollectionUtils.isNotEmpty(sysUserDepts)) { sysUserDept.setId(sysUserDepts.get(0).getId()); sysUserDeptMapper.updateSysUserDept(sysUserDept); } else { sysUserDeptMapper.insertSysUserDept(sysUserDept); //夿ä¸ä¸ç¨æ·-é¨é¨å ³ç³»æ¯ä¸æ¯å·²ç»åå¨äºï¼æ 论æ°ç¨æ·è¿æ¯èç¨æ·é½éè¦å»éï¼ if (ObjectUtils.isNotEmpty(sysUser.getUserId()) && ObjectUtils.isNotEmpty(sysDept)) { SysUserDept sud = new SysUserDept(); sud.setUserId(sysUser.getUserId()); sud.setDeptId(sysDept.getDeptId()); sud.setOrgid(sysDept.getOrgid()); List<SysUserDept> sysUserDepts = sysUserDeptMapper.selectSysUserDeptList(sud); if (CollectionUtils.isNotEmpty(sysUserDepts)) { sysUserDept.setId(sysUserDepts.get(0).getId()); sysUserDeptMapper.updateSysUserDept(sysUserDept); } else { sysUserDeptMapper.insertSysUserDept(sysUserDept); } } if (StringUtils.isNotEmpty(sysDept.getDeptType()) && sysDept.getDeptType().equals("1")) { hospInfoList.add(Arrays.asList(sysDept.getDeptCode())); } else if (StringUtils.isNotEmpty(sysDept.getDeptType()) && sysDept.getDeptType().equals("2")) { deptInfoList.add(Arrays.asList(sysDept.getDeptCode())); } } if (StringUtils.isNotEmpty(sysDept.getDeptType()) && sysDept.getDeptType().equals("1")) { hospInfoList.add(Arrays.asList(sysDept.getDeptCode())); } else if (StringUtils.isNotEmpty(sysDept.getDeptType()) && sysDept.getDeptType().equals("2")) { deptInfoList.add(Arrays.asList(sysDept.getDeptCode())); } } //å°é¨é¨æç åºæ¾å°æå®åæ®µä¸ Gson gson = new Gson(); sysUser.setHospInfo(gson.toJson(hospInfoList)); sysUser.setDeptInfo(gson.toJson(deptInfoList)); sysUser2Mapper.updateUser(sysUser); } //å°é¨é¨æç åºæ¾å°æå®åæ®µä¸ Gson gson = new Gson(); sysUser.setHospInfo(gson.toJson(hospInfoList)); sysUser.setDeptInfo(gson.toJson(deptInfoList)); sysUser2Mapper.updateUser(sysUser); //设置ä¸ä¸ªé»è®¤è§è²ï¼å»çè§è²ï¼ List<SysUserRole> userRoleList = new ArrayList(); SysUserRole sur = new SysUserRole(); sur.setUserId(sysUser.getUserId()); sur.setRoleId(3L); sur.setRoleId(4L); sur.setOrgid(sysUser.getOrgid()); //å æ¥è¯¢ä¸ä¸ï¼æ¯å¦åå¨ SysUserRole sysUserRole = sysUserRoleMapper.selectUserRoleByRoleIdAndUserId(3L, sysUser.getUserId()); SysUserRole sysUserRole = sysUserRoleMapper.selectUserRoleByRoleIdAndUserId(4L, sysUser.getUserId()); if (ObjectUtils.isNotEmpty(sysUserRole)) continue; userRoleList.add(sur); smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -16,6 +16,7 @@ import com.smartor.config.PhoneUtils; import com.smartor.domain.DTO.ServiceSubtaskDetailDTO; import com.smartor.domain.*; import com.smartor.domain.VO.HeLibraryCountVO; import com.smartor.domain.VO.ServiceSubtaskCotinueCountVO; import com.smartor.domain.entity.ServiceSubtaskEntity; import com.smartor.mapper.*; @@ -31,6 +32,7 @@ import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestBody; import java.math.BigDecimal; import java.math.RoundingMode; @@ -3589,7 +3591,8 @@ map.put("content", sendMagParam.getContent()); String result = HttpUtil.postJsonRequest(xhsmsPath, new Gson().toJson(map)); redisCache.setCacheObject(subTaskId + "recordAccept-hungup", "1", 10, TimeUnit.MINUTES); if (StringUtils.isNotEmpty(serviceSubtask.getRemark())) serviceSubtask.setRemark("çµè¯åéææ¥,çä¿¡è¡¥å¿åéæå"); if (StringUtils.isNotEmpty(serviceSubtask.getRemark())) serviceSubtask.setRemark("çµè¯åéææ¥,çä¿¡è¡¥å¿åéæå"); else serviceSubtask.setRemark("çä¿¡è¡¥å¿åéæå"); serviceSubtask.setSendstate(3L); serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); @@ -4172,6 +4175,38 @@ } } @Override public Map<String, Object> getHeLibraryCount(@RequestBody HeLibraryCountVO heLibraryCountVO) { if (ObjectUtils.isEmpty(heLibraryCountVO)) { return new HashMap<>(); } // 1. æ¥è¯¢åç»ç»è®¡ï¼åéæ»éãåéæåéã已读éï¼ List<Map<String, Object>> groupStats = serviceSubtaskMapper.getHeLibraryCount(heLibraryCountVO); // 2. 计ç®åç»çåéæåçå已读ç List<Map<String, Object>> result = new ArrayList<>(); if (CollectionUtils.isNotEmpty(groupStats)) { for (Map<String, Object> row : groupStats) { long totalCount = row.get("totalCount") != null ? ((Number) row.get("totalCount")).longValue() : 0L; long sendSuccessCount = row.get("sendSuccessCount") != null ? ((Number) row.get("sendSuccessCount")).longValue() : 0L; long readCount = row.get("readCount") != null ? ((Number) row.get("readCount")).longValue() : 0L; // åéæåç double sendSuccessRate = totalCount > 0 ? (double) sendSuccessCount / totalCount : 0.0; // 已读çï¼åºäºåéæåçæ°é计ç®ï¼ double readRate = sendSuccessCount > 0 ? (double) readCount / sendSuccessCount : 0.0; row.put("sendSuccessRate", sendSuccessRate); row.put("readRate", readRate); result.add(row); } } Map<String, Object> resultMap = new HashMap<>(); resultMap.put("list", result); resultMap.put("total", result.size()); return resultMap; } private Boolean saveServiceSubtaskDetail(ServiceSubtask serviceSubtask) { Boolean result = true; //3.4 妿3.1æ3.2为trueçè¯ï¼æ ¹æ®type夿ä»ä¹ç±»å smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -2500,4 +2500,50 @@ ORDER BY groupCode </select> <!-- 宣æç»è®¡ï¼æç åºæç§å®¤åç»ï¼ç»è®¡åéæ»éãåéæåéï¼sendstate=6ï¼ã已读éï¼finishtimeä¸ä¸ºç©ºï¼ --> <select id="getHeLibraryCount" parameterType="com.smartor.domain.VO.HeLibraryCountVO" resultType="map"> SELECT <choose> <when test="hospitaldistrictcodes != null and hospitaldistrictcodes.size() > 0"> leavehospitaldistrictcode AS groupCode, leavehospitaldistrictname AS groupName, </when> <otherwise> deptcode AS groupCode, deptname AS groupName, </otherwise> </choose> COUNT(*) AS totalCount, SUM(CASE WHEN sendstate = 6 THEN 1 ELSE 0 END) AS sendSuccessCount, SUM(CASE WHEN finishtime IS NOT NULL THEN 1 ELSE 0 END) AS readCount FROM service_subtask WHERE del_flag = 0 AND service_type = 4 <if test="starttime != null">AND starttime >= #{starttime}</if> <if test="endtime != null">AND endtime <= #{endtime}</if> <if test="visittime != null">AND DATE(visit_time) = DATE(#{visittime})</if> <if test="finishtime != null">AND DATE(finishtime) = DATE(#{finishtime})</if> <if test="hospType != null and hospType != ''">AND hosp_type = #{hospType}</if> <choose> <when test="hospitaldistrictcodes != null and hospitaldistrictcodes.size() > 0"> AND leavehospitaldistrictcode IN <foreach collection="hospitaldistrictcodes" item="code" open="(" separator="," close=")"> #{code} </foreach> GROUP BY leavehospitaldistrictcode, leavehospitaldistrictname ORDER BY groupCode </when> <otherwise> <if test="deptcodes != null and deptcodes.size() > 0"> AND deptcode IN <foreach collection="deptcodes" item="code" open="(" separator="," close=")"> #{code} </foreach> </if> GROUP BY deptcode, deptname ORDER BY groupCode </otherwise> </choose> </select> </mapper>