ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java
@@ -127,7 +127,7 @@ serviceOutPath.setRadix(format); serviceOutPath.setCreateTime(new Date()); serviceOutPath.setOrgid(vo.getOrgid()); String url = ip + ":" + req_path + "/wt?p=" + format; String url = StringUtils.isNotEmpty(req_path) ? ip + ":" + req_path + "/wt?p=" + format : ip + "/wt?p=" + format; content = "æ¨å¥½ï¼é请æ¨å¡«ååºé¢è°æ¥è¡¨ï¼è¯·ç¹å»" + url + "å¡«åãæè°¢æ¨é åï¼"; serviceOutPath.setUrl(url); iServiceOutPathService.insertServiceOutPath(serviceOutPath); @@ -222,7 +222,7 @@ serviceOutPath.setCreateTime(new Date()); serviceOutPath.setOrgid(vo.getOrgid()); iServiceOutPathService.insertServiceOutPath(serviceOutPath); String url = ip + ":" + req_path + "/wt?p=" + format; String url = StringUtils.isNotEmpty(req_path) ? ip + ":" + req_path + "/wt?p=" + format : ip + "/wt?p=" + format; sendMsg = smsUtils.sendChat(url, vo.getPhone(), vo.getIdCard()); } return AjaxResult.success(sendMsg); @@ -251,7 +251,7 @@ serviceOutPath.setRadix(format); serviceOutPath.setCreateTime(new Date()); serviceOutPath.setOrgid(vo.getOrgid()); String url = ip + ":" + req_path + "/wt?p=" + format; String url = StringUtils.isNotEmpty(req_path) ? ip + ":" + req_path + "/wt?p=" + format : ip + "/wt?p=" + format; // content = "æ¨å¥½ï¼é请æ¨å¡«ååºé¢è°æ¥è¡¨ï¼è¯·ç¹å»" + url + "å¡«åãæè°¢æ¨é åï¼"; content = url; serviceOutPath.setUrl(url); ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/MedicationItemController.java
@@ -6,6 +6,7 @@ import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.PageUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.smartor.domain.MedicationItem; import com.smartor.service.IMedicationItemService; @@ -16,6 +17,7 @@ import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.Map; /** * è¯åä¿¡æ¯Controller @@ -37,10 +39,13 @@ //@PreAuthorize("@ss.hasPermi('smartor:item:list')") @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid") @PostMapping("/list") public TableDataInfo list(@RequestBody MedicationItem medicationItem) { startPage(); public Map<String, Object> list(@RequestBody MedicationItem medicationItem) { medicationItem.setPageNum(PageUtils.getOffset(medicationItem.getPageNum(), medicationItem.getPageSize())); List<MedicationItem> list = medicationItemService.selectMedicationItemList(medicationItem); return getDataTable(list); medicationItem.setPageNum(null); medicationItem.setPageSize(null); List<MedicationItem> total = medicationItemService.selectMedicationItemList(medicationItem); return getDataTable3(total.size(), list); } /** ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
@@ -27,6 +27,7 @@ import com.smartor.domain.VO.HeLibraryCountVO; import com.smartor.domain.VO.ServiceSubtaskCotinueCountVO; import com.smartor.domain.VO.ServiceSubtaskVO; import com.smartor.domain.VO.TransferDeptVO; import com.smartor.domain.entity.ServiceSubtaskEntity; import com.smartor.service.IServiceSubtaskRecordService; import com.smartor.service.IServiceSubtaskService; @@ -102,6 +103,18 @@ @Autowired private RedisCache redisCache; /** * 转移ç§å®¤ç åº */ @ApiOperation("转移ç§å®¤ç åº") @PostMapping("/transferDept") public Map<String, Object> transferDept(@RequestBody TransferDeptVO transferDeptVO) { Integer i = serviceSubtaskService.transferDept(transferDeptVO); return success(i == 1 ? true : false); } /** * æ¥è¯¢æ£è éè®¿ä¿¡æ¯ */ ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskmedicalController.java
@@ -8,6 +8,7 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.smartor.domain.ServiceTaskmedical; import com.smartor.domain.VO.ServiceTaskmedicalVO; import com.smartor.service.IServiceTaskmedicalService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -91,13 +92,24 @@ } /** * å é¤ä»»å¡è¯åå ³è * å é¤ä»»å¡è¯åå ³èéå */ @ApiOperation("å é¤ä»»å¡è¯åå ³è") @ApiOperation("å é¤ä»»å¡è¯åå ³èéå") //@PreAuthorize("@ss.hasPermi('smartor:taskmedical:remove')") @Log(title = "ä»»å¡è¯åå ³è", businessType = BusinessType.DELETE) @GetMapping("/remove/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { public AjaxResult removeList(@PathVariable Long[] ids) { return toAjax(serviceTaskmedicalService.deleteServiceTaskmedicalByIds(ids)); } /** * å é¤ä»»å¡è¯åå ³è */ @ApiOperation("å 餿¨¡æ¿ç§å®¤å ³è") //@PreAuthorize("@ss.hasPermi('smartor:taskdiag:remove')") @Log(title = "å 餿¨¡æ¿ç§å®¤å ³è", businessType = BusinessType.DELETE) @PostMapping("/remove") public AjaxResult remove(@RequestBody ServiceTaskmedicalVO serviceTaskmedicalReq) { return toAjax(serviceTaskmedicalService.deleteServiceTaskmedical(serviceTaskmedicalReq)); } } ruoyi-common/src/main/java/com/ruoyi/common/dx/MessageSend.java
@@ -29,7 +29,7 @@ try { if ("6".equals(sMessageType)) { result = soap.i5GSend("202508291634227086", "T202508291635259440", UUID.randomUUID().toString(), sMessageContent, sMessageType, sUserNumber, sScheduleTime); log.info("----çä¿¡è¿åçæ°æ®ä¸ºï¼{}, ----sMessageContent çå¼ä¸º:{}", UUID.randomUUID().toString()); log.info("----çä¿¡è¿åçæ°æ®ä¸ºï¼{}, ----sMessageContent çå¼ä¸º:{}", result,UUID.randomUUID().toString()); } else if ("7".equals(sMessageType)) { result = soap.i5GSend("202508291634227086", "T202607211306131891", UUID.randomUUID().toString(), sMessageContent, sMessageType, sUserNumber, sScheduleTime); log.info("----ééè¿åçåå§æ°æ®ä¸ºï¼{}", result); ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
@@ -287,6 +287,17 @@ } /** * æ¯æ15å·åæåºï¼æ¥è¯¢å¹¶å¤ç HIS æ°æ®ï¼åå¾·ï¼ååï¼ */ public void dealHisDataHalfMonth() { LocalDateTime now = LocalDateTime.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); String formattedNow = now.format(formatter); dealHisData(formattedNow); } /** * HISæ°æ®éé * 宿¶ä»»å¡ï¼é鿣è ä¿¡æ¯ãåºé¢ãé¨è¯æ°æ® * todayZeroStr å½åçæ¶é´ ä¾å¦ï¼2026-05-06 00:00:00 @@ -423,7 +434,7 @@ list.add("FH0109.23"); list.add("FH0109.53"); serviceSLTDInhospReqVO.setStatusList(list); log.info("ãdealHisDataãçç«åå¾·âé¢å ¥é¢âééæ°æ®å ¥åï¼{}", serviceSLTDInhospReqVO); // log.info("ãdealHisDataãçç«åå¾·âé¢å ¥é¢âééæ°æ®å ¥åï¼{}", serviceSLTDInhospReqVO); serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO); log.info("ãdealHisDataãçç«åå¾·âé¢å ¥é¢âçµæééæ°æ®ï¼é¢åºï¼{}", cid); @@ -441,7 +452,7 @@ List<String> listStr = new ArrayList<>(); listStr.add("FH0109.24"); serviceSLTDInhospReqVO.setStatusList(listStr); log.info("ãdealHisDataãçç«åå¾·âå ¥é¢âééæ°æ®å ¥åï¼{}", serviceSLTDInhospReqVO); // log.info("ãdealHisDataãçç«åå¾·âå ¥é¢âééæ°æ®å ¥åï¼{}", serviceSLTDInhospReqVO); serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO); log.info("ãdealHisDataãçç«åå¾·âå ¥é¢âçµæééæ°æ®ï¼é¢åºï¼{}", cid); @@ -464,7 +475,7 @@ //é¢åºé¢ list2.add("FH0109.25"); serviceSLTDInhospReqVO.setStatusList(list2); log.info("ãdealHisDataãçç«åå¾·âåºé¢âééæ°æ®å ¥åï¼{}", serviceSLTDInhospReqVO); // log.info("ãdealHisDataãçç«åå¾·âåºé¢âééæ°æ®å ¥åï¼{}", serviceSLTDInhospReqVO); serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO); log.info("ãdealHisDataãçç«åå¾·âåºé¢âæééæ°æ®ï¼é¢åºï¼{}", cid); } @@ -485,7 +496,7 @@ * @param endDateStr æ¥æç»æ yyyy-MM-dd */ private void collectSegmentData(Long cid, String startDateStr, String endDateStr) { // é¢å ¥é¢ // // é¢å ¥é¢ log.info("ãdealHisDataãé¢å ¥é¢å¼å§ééæ°æ®ï¼é¢åºï¼{}ï¼æ¶é´æ®µï¼{} ~ {}", cid, startDateStr, endDateStr); ServiceSLTDInhospReqVO reqVO = new ServiceSLTDInhospReqVO(); reqVO.setOrgId("20001001"); @@ -1550,7 +1561,7 @@ // //äººå·¥çæªåéç¶æï¼éè¦æ¥2 // if (preachform.equals("1") && StringUtils.isNotEmpty(failSendstate) && Long.valueOf(failSendstate) > 2) // serviceSubtaskPreachform.setSendstate("2"); log.error("-----serviceSubtaskPreachformçå ¥åæ¯ï¼{}", serviceSubtaskPreachform); List<ServiceSubtaskPreachform> serviceSubtaskPreachforms = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform); if (CollectionUtils.isNotEmpty(serviceSubtaskPreachforms)) { ServiceSubtaskPreachform serviceSubtaskPreachform1 = serviceSubtaskPreachforms.get(0); smartor/src/main/java/com/smartor/domain/IvrLibaTemplateScript.java
@@ -96,7 +96,7 @@ */ @Excel(name = "åæ°") @ApiModelProperty(value = "åæ°") private BigDecimal score; private String score; /** * è¯æ¯ID smartor/src/main/java/com/smartor/domain/IvrLibaTemplateScriptVO.java
@@ -74,7 +74,7 @@ */ @Excel(name = "åæ°") @ApiModelProperty(value = "åæ°") private Long score; private String score; /** * è¯æ¯å 容 smartor/src/main/java/com/smartor/domain/IvrLibaTemplateTargetoption.java
@@ -153,7 +153,7 @@ */ @Excel(name = "é项忰") @ApiModelProperty(value = "é项忰") private BigDecimal score; private String score; // /** // * é¢è¦éå¼ä¸é smartor/src/main/java/com/smartor/domain/IvrTaskTemplateScript.java
@@ -53,7 +53,7 @@ */ @Excel(name = "åæ°") @ApiModelProperty(value = "åæ°") private BigDecimal score; private String score; /** * æ é¢ smartor/src/main/java/com/smartor/domain/IvrTaskTemplateScriptVO.java
@@ -46,7 +46,7 @@ */ @Excel(name = "åæ°") @ApiModelProperty(value = "åæ°") private BigDecimal score; private String score; /** * ä»»å¡id smartor/src/main/java/com/smartor/domain/IvrTaskTemplateTargetoption.java
@@ -51,7 +51,7 @@ */ @Excel(name = "åæ°") @ApiModelProperty(value = "åæ°") private BigDecimal score; private String score; /** * ææ ID smartor/src/main/java/com/smartor/domain/PatMedInhosp.java
@@ -327,10 +327,16 @@ private String inDeptcheckFlag; /** * å ¥é¢ç åºé¿æä»»å¡ï¼æ¯å¦å¤çï¼0æªå¤ç 1å¤ç * å ¥é¢ç åºé¿æä»»å¡ï¼æ¯å¦å¤çï¼0 æªå¤ç 1 å¤ç */ @ApiModelProperty(value = "å ¥é¢ç åºé¿æä»»å¡ï¼æ¯å¦å¤çï¼0æªå¤ç 1å¤çæå 2å¤ç失败 ") @ApiModelProperty(value = "å ¥é¢ç åºé¿æä»»å¡ï¼æ¯å¦å¤çï¼0 æªå¤ç 1 å¤çæå 2 å¤ç失败 ") private String inWardcheckFlag; /** * è¯å宣æé¿æä»»å¡ï¼æ¯å¦å¤çï¼0 æªå¤ç 1 å¤ç */ @ApiModelProperty(value = "è¯å宣æé¿æä»»å¡ï¼æ¯å¦å¤çï¼0 æªå¤ç 1 å¤çæå 2 å¤ç失败 ") private String medcheckFlag; /** * å¹´é¾ smartor/src/main/java/com/smartor/domain/ServiceSubtask.java
@@ -530,7 +530,7 @@ */ @Excel(name = "æ»å") @ApiModelProperty(value = "æ»å") private BigDecimal score; private String score; /** * 模æ¿åºæ¨¡çåç§° smartor/src/main/java/com/smartor/domain/ServiceSubtaskExportVO.java
@@ -466,7 +466,7 @@ */ @Excel(name = "æ»å") @ApiModelProperty(value = "æ»å") private BigDecimal score; private String score; /** * 模æ¿åºæ¨¡çåç§° smartor/src/main/java/com/smartor/domain/ServiceSubtaskRes.java
@@ -536,7 +536,7 @@ */ @Excel(name = "æ»å") @ApiModelProperty(value = "æ»å") private BigDecimal score; private String score; /** * 模æ¿åºæ¨¡çåç§° smartor/src/main/java/com/smartor/domain/ServiceTaskVO.java
@@ -458,7 +458,7 @@ * éç¨æ¡ä»¶ç±»åï¼1ãæç§å®¤ã2ãæç åºã3ãæç¾ç è¯æã4ãæææ¯ç±»åã5ãæä»»å¡ç» */ @ApiModelProperty("éç¨æ¡ä»¶ç±»åï¼1ãæç§å®¤ã2ãæç åºã3ãæç¾ç è¯æã4ãæææ¯ç±»åã5ãæä»»å¡ç» 6.æè¯åç¼ç ") @Excel(name = "éç¨æ¡ä»¶ç±»åï¼1ãæç§å®¤ã2ãæç åºã3ãæç¾ç è¯æã4ãæææ¯ç±»åã5ãæä»»å¡ç»") @Excel(name = "éç¨æ¡ä»¶ç±»åï¼1ãæç§å®¤ã2ãæç åºã3ãæç¾ç è¯æã4ãæææ¯ç±»åã5ãæä»»å¡ç» 6.æè¯åç¼ç " ) private String appltype; @ApiModelProperty(value = "é访é¨é¨ç¼ç ") smartor/src/main/java/com/smartor/domain/SvyFinish.java
@@ -1,8 +1,8 @@ package com.smartor.domain; import java.math.BigDecimal; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.annotation.Excel; @@ -10,10 +10,11 @@ /** * é®å·æç»ç»æå¯¹è±¡ svy_finish * * * @author ruoyi * @date 2023-03-03 */ @Data public class SvyFinish extends BaseEntity { private static final long serialVersionUID = 1L; @@ -39,7 +40,7 @@ /** æ»å¾å */ @Excel(name = " æ»å¾å ") private BigDecimal totalscore; private String totalscore; /** åé¦ç»æå 容 */ @Excel(name = " åé¦ç»æå 容 ") @@ -51,7 +52,7 @@ /** å±ç¤ºå¾å */ @Excel(name = " å±ç¤ºå¾å ") private Long isshowscore; private String isshowscore; /** 计åID */ @Excel(name = " 计åID ") @@ -74,164 +75,4 @@ /** ä¸ä¼ æ¶é´ */ private Date uploadTime; public void setId(Long id) { this.id = id; } public Long getId() { return id; } public void setPatid(Long patid) { this.patid = patid; } public Long getPatid() { return patid; } public void setSchemeid(Long schemeid) { this.schemeid = schemeid; } public Long getSchemeid() { return schemeid; } public void setSvytitle(String svytitle) { this.svytitle = svytitle; } public String getSvytitle() { return svytitle; } public void setSvyid(Long svyid) { this.svyid = svyid; } public Long getSvyid() { return svyid; } public void setTotalscore(BigDecimal totalscore) { this.totalscore = totalscore; } public BigDecimal getTotalscore() { return totalscore; } public void setResultcontent(String resultcontent) { this.resultcontent = resultcontent; } public String getResultcontent() { return resultcontent; } public void setOrgid(String orgid) { this.orgid = orgid; } public String getOrgid() { return orgid; } public void setIsshowscore(Long isshowscore) { this.isshowscore = isshowscore; } public Long getIsshowscore() { return isshowscore; } public void setSchemeplanid(Long schemeplanid) { this.schemeplanid = schemeplanid; } public Long getSchemeplanid() { return schemeplanid; } public void setSchemetaskid(Long schemetaskid) { this.schemetaskid = schemetaskid; } public Long getSchemetaskid() { return schemetaskid; } public void setIsabnormal(Long isabnormal) { this.isabnormal = isabnormal; } public Long getIsabnormal() { return isabnormal; } public void setDelFlag(String delFlag) { this.delFlag = delFlag; } public String getDelFlag() { return delFlag; } public void setIsupload(Long isupload) { this.isupload = isupload; } public Long getIsupload() { return isupload; } public void setUploadTime(Date uploadTime) { this.uploadTime = uploadTime; } public Date getUploadTime() { return uploadTime; } @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) .append("id", getId()) .append("patid", getPatid()) .append("schemeid", getSchemeid()) .append("svytitle", getSvytitle()) .append("svyid", getSvyid()) .append("totalscore", getTotalscore()) .append("resultcontent", getResultcontent()) .append("orgid", getOrgid()) .append("isshowscore", getIsshowscore()) .append("schemeplanid", getSchemeplanid()) .append("schemetaskid", getSchemetaskid()) .append("isabnormal", getIsabnormal()) .append("delFlag", getDelFlag()) .append("createBy", getCreateBy()) .append("createTime", getCreateTime()) .append("updateBy", getUpdateBy()) .append("updateTime", getUpdateTime()) .append("isupload", getIsupload()) .append("uploadTime", getUploadTime()) .toString(); } } smartor/src/main/java/com/smartor/domain/SvyFinishoption.java
@@ -3,6 +3,7 @@ import java.math.BigDecimal; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.annotation.Excel; @@ -10,10 +11,11 @@ /** * é®å·æç»ç»æé项详æ 对象 svy_finishoption * * * @author ruoyi * @date 2023-03-03 */ @Data public class SvyFinishoption extends BaseEntity { private static final long serialVersionUID = 1L; @@ -35,7 +37,7 @@ /** å½åé项å¾å */ @Excel(name = " å½åé项å¾å ") private BigDecimal score; private String score; /** æºæID */ @Excel(name = " æºæID ") @@ -57,124 +59,4 @@ @Excel(name = " æºå¨äººéæ©æ è®° ") private Long isrobot; public void setId(Long id) { this.id = id; } public Long getId() { return id; } public void setFinshresultdetailid(Long finshresultdetailid) { this.finshresultdetailid = finshresultdetailid; } public Long getFinshresultdetailid() { return finshresultdetailid; } public void setPsqoptionid(Long psqoptionid) { this.psqoptionid = psqoptionid; } public Long getPsqoptionid() { return psqoptionid; } public void setContent(String content) { this.content = content; } public String getContent() { return content; } public void setScore(BigDecimal score) { this.score = score; } public BigDecimal getScore() { return score; } public void setOrgid(String orgid) { this.orgid = orgid; } public String getOrgid() { return orgid; } public void setDelFlag(String delFlag) { this.delFlag = delFlag; } public String getDelFlag() { return delFlag; } public void setIsupload(Long isupload) { this.isupload = isupload; } public Long getIsupload() { return isupload; } public void setUploadTime(Date uploadTime) { this.uploadTime = uploadTime; } public Date getUploadTime() { return uploadTime; } public void setIsabnormal(Long isabnormal) { this.isabnormal = isabnormal; } public Long getIsabnormal() { return isabnormal; } public void setIsrobot(Long isrobot) { this.isrobot = isrobot; } public Long getIsrobot() { return isrobot; } @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) .append("id", getId()) .append("finshresultdetailid", getFinshresultdetailid()) .append("psqoptionid", getPsqoptionid()) .append("content", getContent()) .append("score", getScore()) .append("orgid", getOrgid()) .append("delFlag", getDelFlag()) .append("updateBy", getUpdateBy()) .append("updateTime", getUpdateTime()) .append("createBy", getCreateBy()) .append("createTime", getCreateTime()) .append("isupload", getIsupload()) .append("uploadTime", getUploadTime()) .append("isabnormal", getIsabnormal()) .append("isrobot", getIsrobot()) .toString(); } } smartor/src/main/java/com/smartor/domain/SvyFinishtopic.java
@@ -3,6 +3,7 @@ import java.math.BigDecimal; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.annotation.Excel; @@ -10,10 +11,11 @@ /** * é®å·è°æ¥ç»æè¯¦æ 对象 svy_finishtopic * * * @author ruoyi * @date 2023-03-03 */ @Data public class SvyFinishtopic extends BaseEntity { private static final long serialVersionUID = 1L; @@ -35,7 +37,7 @@ /** å½åé项å¾å */ @Excel(name = " å½åé项å¾å ") private BigDecimal score; private String score; /** æºæID */ @Excel(name = " æºæID ") @@ -53,104 +55,4 @@ @Excel(name = " ä¸ä¼ æ¶é´ ", width = 30, dateFormat = "yyyy-MM-dd") private Date uploadTime; public void setId(Long id) { this.id = id; } public Long getId() { return id; } public void setPsqid(Long psqid) { this.psqid = psqid; } public Long getPsqid() { return psqid; } public void setResultid(Long resultid) { this.resultid = resultid; } public Long getResultid() { return resultid; } public void setTopicid(Long topicid) { this.topicid = topicid; } public Long getTopicid() { return topicid; } public void setScore(BigDecimal score) { this.score = score; } public BigDecimal getScore() { return score; } public void setOrgid(String orgid) { this.orgid = orgid; } public String getOrgid() { return orgid; } public void setDelFlag(String delFlag) { this.delFlag = delFlag; } public String getDelFlag() { return delFlag; } public void setIsupload(Long isupload) { this.isupload = isupload; } public Long getIsupload() { return isupload; } public void setUploadTime(Date uploadTime) { this.uploadTime = uploadTime; } public Date getUploadTime() { return uploadTime; } @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) .append("id", getId()) .append("psqid", getPsqid()) .append("resultid", getResultid()) .append("topicid", getTopicid()) .append("score", getScore()) .append("orgid", getOrgid()) .append("delFlag", getDelFlag()) .append("updateBy", getUpdateBy()) .append("updateTime", getUpdateTime()) .append("createBy", getCreateBy()) .append("createTime", getCreateTime()) .append("isupload", getIsupload()) .append("uploadTime", getUploadTime()) .toString(); } } smartor/src/main/java/com/smartor/domain/SvyLibResult.java
@@ -1,7 +1,9 @@ package com.smartor.domain; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.annotation.Excel; @@ -9,161 +11,71 @@ /** * é®å·ç»æå¯¹è±¡ svy_lib_result * * * @author ruoyi * @date 2023-03-02 */ public class SvyLibResult extends BaseEntity { @Data public class SvyLibResult extends BaseEntity { private static final long serialVersionUID = 1L; /** èªå¢ID */ /** * èªå¢ID */ private Long resultid; /** é®å·ID */ /** * é®å·ID */ @Excel(name = " é®å·ID ") private Long svyid; /** ç»æå 容 */ /** * ç»æå 容 */ @Excel(name = " ç»æå 容 ") private String resultcontent; /** æä¸ */ /** * æä¸ */ @Excel(name = " æä¸ ") private Long orand; /** æ¯å¦æ¾ç¤ºå¾å */ /** * æ¯å¦æ¾ç¤ºå¾å */ @Excel(name = " æ¯å¦æ¾ç¤ºå¾å ") private Long isshowscore; private String isshowscore; /** æåº */ /** * æåº */ @Excel(name = " æåº ") private Long sort; /** æºæID */ /** * æºæID */ @Excel(name = " æºæID ") private String orgid; /** å 餿 è®° */ /** * å 餿 è®° */ private String delFlag; /** ä¸ä¼ æ è®° */ /** * ä¸ä¼ æ è®° */ @Excel(name = " ä¸ä¼ æ è®° ") private Long isupload; /** ä¸ä¼ æ¶é´ */ /** * ä¸ä¼ æ¶é´ */ @JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = " ä¸ä¼ æ¶é´ ", width = 30, dateFormat = "yyyy-MM-dd") private Date uploadTime; public void setResultid(Long resultid) { this.resultid = resultid; } public Long getResultid() { return resultid; } public void setSvyid(Long svyid) { this.svyid = svyid; } public Long getSvyid() { return svyid; } public void setResultcontent(String resultcontent) { this.resultcontent = resultcontent; } public String getResultcontent() { return resultcontent; } public void setOrand(Long orand) { this.orand = orand; } public Long getOrand() { return orand; } public void setIsshowscore(Long isshowscore) { this.isshowscore = isshowscore; } public Long getIsshowscore() { return isshowscore; } public void setSort(Long sort) { this.sort = sort; } public Long getSort() { return sort; } public void setOrgid(String orgid) { this.orgid = orgid; } public String getOrgid() { return orgid; } public void setDelFlag(String delFlag) { this.delFlag = delFlag; } public String getDelFlag() { return delFlag; } public void setIsupload(Long isupload) { this.isupload = isupload; } public Long getIsupload() { return isupload; } public void setUploadTime(Date uploadTime) { this.uploadTime = uploadTime; } public Date getUploadTime() { return uploadTime; } @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) .append("resultid", getResultid()) .append("svyid", getSvyid()) .append("resultcontent", getResultcontent()) .append("orand", getOrand()) .append("isshowscore", getIsshowscore()) .append("sort", getSort()) .append("orgid", getOrgid()) .append("delFlag", getDelFlag()) .append("createBy", getCreateBy()) .append("createTime", getCreateTime()) .append("updateBy", getUpdateBy()) .append("updateTime", getUpdateTime()) .append("isupload", getIsupload()) .append("uploadTime", getUploadTime()) .toString(); } } smartor/src/main/java/com/smartor/domain/SvyLibScript.java
@@ -163,7 +163,7 @@ private String scoretype; @ApiModelProperty(value = "é¢ç®åå¼ï¼æ°å1,2çï¼åæ¯AãBï¼Cï¼Dçï¼") private BigDecimal score; private String score; @ApiModelProperty(value = "éç¨ç¾ç ") private String icd10Name; smartor/src/main/java/com/smartor/domain/SvyLibScriptOption.java
@@ -91,7 +91,7 @@ * åæ° */ @ApiModelProperty(value = "åæ°") private BigDecimal score; private String score; /** * æç¤º smartor/src/main/java/com/smartor/domain/SvyLibTemplateScript.java
@@ -237,7 +237,7 @@ */ @Excel(name = "é¢ç®åå¼ï¼æ°å1,2çï¼åæ¯AãBï¼Cï¼Dçï¼") @ApiModelProperty("é¢ç®åå¼ï¼æ°å1,2çï¼åæ¯AãBï¼Cï¼Dçï¼") private BigDecimal score; private String score; /** * é¢ç®ä¸»é¢ smartor/src/main/java/com/smartor/domain/SvyLibTemplateScriptVO.java
@@ -274,7 +274,7 @@ */ @Excel(name = "é¢ç®åå¼ï¼æ°å1,2çï¼åæ¯AãBï¼Cï¼Dçï¼") @ApiModelProperty("é¢ç®åå¼ï¼æ°å1,2çï¼åæ¯AãBï¼Cï¼Dçï¼") private BigDecimal score; private String score; /** * é¢ç®ä¸»é¢ smartor/src/main/java/com/smartor/domain/SvyLibTemplateTargetoption.java
@@ -42,7 +42,7 @@ */ @Excel(name = "åæ°") @ApiModelProperty(value = "åæ°") private BigDecimal score; private String score; /** * ææ åç§° smartor/src/main/java/com/smartor/domain/SvyTaskScriptoption.java
@@ -108,7 +108,7 @@ */ @Excel(name = " åæ° ") @ApiModelProperty(value = "åæ°") private Long score; private String score; /** * æç¤º smartor/src/main/java/com/smartor/domain/SvyTaskTemplateScript.java
@@ -80,7 +80,7 @@ */ @Excel(name = "åæ°") @ApiModelProperty(value = "åæ°") private BigDecimal score; private String score; /** * ç±»å«å smartor/src/main/java/com/smartor/domain/SvyTaskTemplateScriptVO.java
@@ -5,10 +5,6 @@ import com.ruoyi.common.core.domain.BaseEntity; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -262,7 +258,7 @@ */ @Excel(name = "åæ°") @ApiModelProperty(value = "åæ°") private BigDecimal score = BigDecimal.ZERO; private String score = "0"; /** * éä¸æç¤º smartor/src/main/java/com/smartor/domain/SvyTaskTemplateTargetoption.java
@@ -251,14 +251,14 @@ * åæ° */ @ApiModelProperty(value = "åæ°") private BigDecimal score; private String score; /** * æ¯å¦æ¯ç¨æ·éæ©çé项 */ @ApiModelProperty(value = "æ¯å¦æ¯ç¨æ·éæ©çé项") private Boolean isUserOperation = false; /** * é»è®¤é项ï¼1 å¦ 2 æ¯ */ smartor/src/main/java/com/smartor/domain/SvyTopicoption.java
@@ -85,7 +85,7 @@ * åæ° */ @ApiModelProperty(value = "åæ°") private Long score; private String score; /** * æç¤º smartor/src/main/java/com/smartor/domain/VO/ServiceSubtaskVO.java
@@ -554,7 +554,7 @@ */ @Excel(name = "æ»å") @ApiModelProperty(value = "æ»å") private Long score; private String score; /** smartor/src/main/java/com/smartor/domain/VO/ServiceTaskmedicalVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,34 @@ package com.smartor.domain.VO; import com.ruoyi.common.annotation.Excel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * ä»»å¡è¯åå ³è对象 service_taskmedical * * @author lihu * @date 2026-07-29 */ @Data @ApiModel("ä»»å¡è¯åå ³è") public class ServiceTaskmedicalVO { /** * ä»»å¡id */ @ApiModelProperty("ä»»å¡id") @Excel(name = "ä»»å¡id") private Long taskId; /** * è¯åç¼ç */ @ApiModelProperty("è¯åç¼ç ") @Excel(name = "è¯åç¼ç ") private String medicalCode; } smartor/src/main/java/com/smartor/domain/VO/TransferDeptVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,61 @@ package com.smartor.domain.VO; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.BaseEntity; import com.smartor.domain.TaskSendTimeVO; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; import java.util.List; import java.util.Map; /** * 转移ç§å®¤ç åºå ¥å * * @author ruoyi * @date 2024-02-02 */ @ApiModel(value = "TransferDeptVO", description = "转移ç§å®¤ç åºå ¥å") @Data public class TransferDeptVO extends BaseEntity { private static final long serialVersionUID = 1L; /** * */ @ApiModelProperty(value = "主é®id") private Long subId; /** * 离é¢é¨é¨code */ @Excel(name = " 离é¢é¨é¨code") @ApiModelProperty(value = "离é¢é¨é¨code") private String leavelDeptCode; /** * 离é¢é¨é¨åç§° */ @Excel(name = " 离é¢é¨é¨åç§°") @ApiModelProperty(value = "离é¢é¨é¨åç§°") private String leavelDeptName; /** * åºé¢ç åºç¼å· */ @ApiModelProperty(value = "åºé¢ç åºç¼å·") private String leavehospitaldistrictcode; /* * åºé¢ç åºåç§° */ @ApiModelProperty(value = "åºé¢ç åºåç§°") @Excel(name = " åºé¢ç åºåç§° ") private String leavehospitaldistrictname; } smartor/src/main/java/com/smartor/domain/entity/PatSatisfactionDetailEntity.java
@@ -46,19 +46,19 @@ * å¹³åå */ @ApiModelProperty(value = "å¹³åå") private Double averageScore; private String averageScore; /** * æé«å */ @ApiModelProperty(value = "æé«å") private Double maxScore; private String maxScore; /** * æä½å */ @ApiModelProperty(value = "æä½å") private Double minScore; private String minScore; /** * çé¢ç smartor/src/main/java/com/smartor/domain/entity/ServiceSubtaskEntity.java
@@ -569,7 +569,7 @@ */ @Excel(name = "æ»å") @ApiModelProperty(value = "æ»å") private Long score; private String score; /** smartor/src/main/java/com/smartor/mapper/ServiceSubtaskDetailMapper.java
@@ -42,6 +42,7 @@ * æ¥è¯¢é访详æ -ææ è®°å½ */ public List<Map<String, Object>> getServiceSubtaskDetails(ServiceSubtaskDetailVO serviceSubtaskDetailVo); /** * æ°å¢è¯é³ä»»å¡å¼å«æç» * @@ -84,4 +85,19 @@ * @return ææ ç»è®¡ */ public List<ServiceSubtaskDetailTarget> countPatByTarget(Long targetid); /** * æ¥è¯¢å个subidéå¤çdetailæ°æ®IDå表 * * @return éå¤è®°å½IDå表 */ public List<Long> selectRepeatDetailIds(); /** * æ ¹æ®IDå表æ¹éæ è®°éå¤detailæ°æ®ä¸ºå é¤ * * @param ids éå¤è®°å½IDå表 * @return æ´æ°è¡æ° */ public Integer deleteRepeatDetailByIds(@Param("ids") List<Long> ids); } smartor/src/main/java/com/smartor/mapper/ServiceTaskmedicalMapper.java
@@ -1,6 +1,7 @@ package com.smartor.mapper; import com.smartor.domain.ServiceTaskmedical; import com.smartor.domain.VO.ServiceTaskmedicalVO; import org.apache.ibatis.annotations.Mapper; import java.util.List; @@ -61,4 +62,6 @@ * @return ç»æ */ public int deleteServiceTaskmedicalByIds(Long[] ids); public int deleteServiceTaskmedical(ServiceTaskmedicalVO serviceTaskmedicalVO); } smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
@@ -5,6 +5,7 @@ import com.smartor.domain.ServiceSubtask; import com.smartor.domain.VO.HeLibraryCountVO; import com.smartor.domain.VO.ServiceSubtaskCotinueCountVO; import com.smartor.domain.VO.TransferDeptVO; import com.smartor.domain.entity.ServiceSubtaskEntity; import org.springframework.web.bind.annotation.RequestBody; @@ -52,6 +53,13 @@ */ public List<ServiceSubtaskRes> patItem(ServiceSubtaskEntity serviceSubtaskEntity); /** * 转移ç§å®¤ç åº * @param transferDeptVO * @return */ public Integer transferDept(TransferDeptVO transferDeptVO); public List<ServiceSubtask> patItem2(ServiceSubtaskEntity serviceSubtaskEntity); public Map<String, Object> patItemCount(ServiceSubtaskEntity serviceSubtaskEntity); smartor/src/main/java/com/smartor/service/IServiceTaskmedicalService.java
@@ -1,6 +1,7 @@ package com.smartor.service; import com.smartor.domain.ServiceTaskmedical; import com.smartor.domain.VO.ServiceTaskmedicalVO; import java.util.List; @@ -59,4 +60,11 @@ * @return ç»æ */ public int deleteServiceTaskmedicalById(Long id); /** * å é¤ä»»å¡è¯åå ³èä¿¡æ¯ * * @param id ä»»å¡è¯åå ³èä¸»é® * @return ç»æ */ public int deleteServiceTaskmedical(ServiceTaskmedicalVO serviceTaskmedicalVO); } smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -342,38 +342,40 @@ } } //2.è¯å宣æ for (PatMedInhosp patMedInhosp : patMedInhosps) { String medicalCode = patMedInhosp.getMedicalCode(); if (StringUtils.isNotEmpty(medicalCode)) { String[] split = medicalCode.split(","); // é²å¾¡æ§ç¼ç¨ï¼ç¡®ä¿ medicalCompany å medicalName ä¸ä¸º null String medicalCompanyStr = patMedInhosp.getMedicalCompany() != null ? patMedInhosp.getMedicalCompany() : ""; String medicalNameStr = patMedInhosp.getMedicalName() != null ? patMedInhosp.getMedicalName() : ""; String[] medicalCompanyArray = medicalCompanyStr.split(","); String[] medicalNameArray = medicalNameStr.split(","); //2.è¯å宣æ(çç«åå¾·çéæ±ï¼å ¶å®å°æ¹æ²¡æ) if (active.equals("sltd")) { for (PatMedInhosp patMedInhosp : patMedInhosps) { String medicalCode = patMedInhosp.getMedicalCode(); if (StringUtils.isNotEmpty(medicalCode)) { String[] split = medicalCode.split(","); // é²å¾¡æ§ç¼ç¨ï¼ç¡®ä¿ medicalCompany å medicalName ä¸ä¸º null String medicalCompanyStr = patMedInhosp.getMedicalCompany() != null ? patMedInhosp.getMedicalCompany() : ""; String medicalNameStr = patMedInhosp.getMedicalName() != null ? patMedInhosp.getMedicalName() : ""; String[] medicalCompanyArray = medicalCompanyStr.split(","); String[] medicalNameArray = medicalNameStr.split(","); for (int i = 0; i < split.length; i++) { ServiceTaskmedical serviceTaskmedical = new ServiceTaskmedical(); //æ¿è¯åç¼ç åå ¬å¸å»æ¥ serviceTaskmedical.setMedicalCode(split[i]); // 鲿¢ä¸æ è¶çï¼å¦ææ°ç»é¿åº¦ä¸ä¸è´ï¼åæå°é¿åº¦ if (i < medicalCompanyArray.length) { serviceTaskmedical.setMedicalName(medicalCompanyArray[i]); } else { log.warn("ãè¯å宣æãè¯åç¼ç {}对åºçå ¬å¸ä¿¡æ¯ä¸æ è¶çï¼medicalCompany æ°ç»é¿åº¦={}, å½åç´¢å¼={}", split[i], medicalCompanyArray.length, i); serviceTaskmedical.setMedicalName(""); // è¶çæ¶è®¾ç½®ä¸ºç©º for (int i = 0; i < split.length; i++) { ServiceTaskmedical serviceTaskmedical = new ServiceTaskmedical(); //æ¿è¯åç¼ç åå ¬å¸å»æ¥ serviceTaskmedical.setMedicalCode(split[i]); // 鲿¢ä¸æ è¶çï¼å¦ææ°ç»é¿åº¦ä¸ä¸è´ï¼åæå°é¿åº¦ if (i < medicalCompanyArray.length) { serviceTaskmedical.setMedicalCompany(medicalCompanyArray[i]); } else { log.warn("ãè¯å宣æãè¯åç¼ç {}对åºçå ¬å¸ä¿¡æ¯ä¸æ è¶çï¼medicalCompany æ°ç»é¿åº¦={}, å½åç´¢å¼={}", split[i], medicalCompanyArray.length, i); serviceTaskmedical.setMedicalName(""); // è¶çæ¶è®¾ç½®ä¸ºç©º } List<ServiceTaskmedical> serviceTaskmedicals = serviceTaskmedicalMapper.selectServiceTaskmedicalList(serviceTaskmedical); if (CollectionUtils.isNotEmpty(serviceTaskmedicals)) { PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhosp.getPatid()); // check=trueï¼è®© writeInSubTask å é¨åå»éæ ¡éª writeInSubTask(serviceTaskmedicals.get(0).getTaskId(), true, patMedInhosp, patArchive, 0, config); } //æ¥ä¸å°çè¯åå°±æ¯ä¸éè¦å®£æçï¼å°±ä¸ç®¡äº } List<ServiceTaskmedical> serviceTaskmedicals = serviceTaskmedicalMapper.selectServiceTaskmedicalList(serviceTaskmedical); if (CollectionUtils.isNotEmpty(serviceTaskmedicals)) { PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhosp.getPatid()); writeInSubTask(serviceTaskmedicals.get(0).getTaskId(), false, patMedInhosp, patArchive, 0, config); } //æ¥ä¸å°çè¯åå°±æ¯ä¸éè¦å®£æçï¼å°±ä¸ç®¡äº } } } //3.åºé¢é访 - åºäºè§åçä»»å¡çæ // è·åææéè¦å¤ççåºé¢æ£è ï¼ç§å®¤ç»´åº¦æªå¤çï¼ @@ -409,12 +411,12 @@ if (CollectionUtils.isNotEmpty(serviceTasks)) { for (ServiceTask serviceTask : serviceTasks) { if(!ObjectUtils.isEmpty(serviceTask.getTaskid())){ if (!ObjectUtils.isEmpty(serviceTask.getTaskid())) { ServiceTaskSchedule serviceTaskSchedule = new ServiceTaskSchedule(); ServiceTaskSchedule taskSchedule = new ServiceTaskSchedule(); taskSchedule.setTaskid(serviceTask.getTaskid()); List<ServiceTaskSchedule> serviceTaskSchedules = serviceTaskScheduleMapper.selectServiceTaskScheduleList(taskSchedule); if(CollectionUtils.isNotEmpty(serviceTaskSchedules)){ if (CollectionUtils.isNotEmpty(serviceTaskSchedules)) { serviceTaskSchedule = serviceTaskSchedules.get(0); String deptCodes = serviceTaskSchedule.getDeptCodes(); String wardCodes = serviceTaskSchedule.getWardCodes(); @@ -434,11 +436,11 @@ type = 1; deptCodeList = new ArrayList<>(Arrays.asList(deptCodes.split(","))); } if(StringUtils.isNotEmpty(wardCodes)) { if (StringUtils.isNotEmpty(wardCodes)) { type = 2; wardCodeList = new ArrayList<>(Arrays.asList(wardCodes.split(","))); } if(StringUtils.isNotEmpty(icd10Codes)) { if (StringUtils.isNotEmpty(icd10Codes)) { type = 3; icd10CodeList = new ArrayList<>(Arrays.asList(icd10Codes.split(","))); } @@ -447,7 +449,7 @@ opLevelCodeList = new ArrayList<>(Arrays.asList(opLevelCodes.split(","))); } //éææ¯å¤çæ¹å¼ if(type != 6){ if (type != 6) { PatMedInhosp patMedInhospVo = new PatMedInhosp(); patMedInhospVo.setScheduleCheckFlag("0"); patMedInhospVo.setInhospstate("1"); @@ -459,7 +461,7 @@ List<PatMedInhosp> patList = patMedInhospMapper.selectPatMedInhospList(patMedInhospVo); log.info("dealOutHospInfoBySchedule ä»»å¡ç»é访, taskid = {}, æ«ææ£è äººæ° {}", serviceTask.getTaskid(), patList.size()); for(PatMedInhosp patMedInhosp : patList){ for (PatMedInhosp patMedInhosp : patList) { ServiceTaskScheduleDetail scheduleDetailVo = new ServiceTaskScheduleDetail(); scheduleDetailVo.setTaskid(serviceTask.getTaskid()); scheduleDetailVo.setScheduleid(serviceTaskSchedule.getId()); @@ -473,11 +475,11 @@ ServiceSubtask serviceSubtask = boxedServiceSubtask(serviceTask, patMedInhosp, patArchive, config, type); List<Map<String, Object>> preachformList = new ArrayList<>(); if(StringUtils.isNotEmpty(serviceTask.getPreachformDesc())){ if (StringUtils.isNotEmpty(serviceTask.getPreachformDesc())) { try { ObjectMapper objectMapper = new ObjectMapper(); preachformList = objectMapper.readValue(serviceTask.getPreachformDesc(), List.class); }catch (Exception e){ } catch (Exception e) { log.error("ä»»å¡ç»preachformDescè§£æå¤±è´¥,taskid={},inhospid={}", serviceTask.getTaskid(), patMedInhosp.getInhospid()); } } @@ -488,9 +490,9 @@ flagUpd.setScheduleCheckFlag("1"); patMedInhospMapper.updatePatMedInhosp(flagUpd); } }else { } else { //ä»»å¡ç» - ææ¯é访 if(CollectionUtils.isNotEmpty(opLevelCodeList)){ if (CollectionUtils.isNotEmpty(opLevelCodeList)) { PatMedOperationItem pmoi = new PatMedOperationItem(); //è·åéè¦åºé¢ç¾ç éè®¿ï¼æªå¤ççæ°æ® pmoi.setOpercheckFlag("0"); @@ -499,7 +501,7 @@ pmoi.setWardCodes(wardCodeList); pmoi.setOpLevelCodes(opLevelCodeList); List<PatMedOperationItem> patMedOperationItems = patMedOperationItemMapper.selectOperationItemList(pmoi); for(PatMedOperationItem patMedOperationItem : patMedOperationItems){ for (PatMedOperationItem patMedOperationItem : patMedOperationItems) { PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOperationItem.getPatid()); if (Objects.isNull(patArchive)) { continue; @@ -510,7 +512,7 @@ patMedInhospVo.setInhospstate("1"); patMedInhospVo.setFuflag("1"); List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhospVo); if(CollectionUtils.isNotEmpty(patMedInhospList)){ if (CollectionUtils.isNotEmpty(patMedInhospList)) { ServiceTaskScheduleDetail scheduleDetailVo = new ServiceTaskScheduleDetail(); scheduleDetailVo.setTaskid(serviceTask.getTaskid()); scheduleDetailVo.setScheduleid(serviceTaskSchedule.getId()); @@ -518,11 +520,11 @@ //å°è£ serviceSubtask ServiceSubtask serviceSubtask = boxedServiceSubtaskForOp(serviceTask, patMedInhospList.get(0), patMedOperationItem, patArchive, config); List<Map<String, Object>> preachformList = new ArrayList<>(); if(StringUtils.isNotEmpty(serviceTask.getPreachformDesc())){ if (StringUtils.isNotEmpty(serviceTask.getPreachformDesc())) { try { ObjectMapper objectMapper = new ObjectMapper(); preachformList = objectMapper.readValue(serviceTask.getPreachformDesc(), List.class); }catch (Exception e){ } catch (Exception e) { log.error("ä»»å¡ç»(ææ¯)preachformDescè§£æå¤±è´¥,taskid={}", serviceTask.getTaskid()); } } @@ -619,6 +621,13 @@ List<ServiceTask> serviceTasks = serviceTaskMapper.selectServiceTaskList(st); ServiceTask serviceTask = null; if (CollectionUtils.isEmpty(serviceTasks)) { if (type == 0) { log.info("该æ£è è¯å宣æé¿æä»»å¡ä¸åå¨,ä»»å¡ID为ï¼{}", taskid); patMedInhosp1.setMedcheckFlag("2"); patMedInhosp1.setLongTaskReason(longTaskReason + " & 该æ£è è¯å宣æé¿æä»»å¡ä¸åå¨,ä»»å¡ID为:" + taskid); patMedInhospMapper.updatePatMedInhosp(patMedInhosp1); return; } if (type == 1) { log.info("该æ£è åºé¢éè®¿é¿æä»»å¡ä¸åå¨,ä»»å¡ID为ï¼{}", taskid); patMedInhosp1.setDeptcheckFlag("2"); @@ -797,7 +806,7 @@ addServiceSubtaskPreachform(serviceSubtask, null); } //å°check_flagæ¹æ1ï¼å·²å¤çï¼ //å° check_flag æ¹æ 1ï¼å·²å¤çï¼ if (i == 1) { PatMedInhosp patMedInhosp2 = new PatMedInhosp(); patMedInhosp2.setInhospid(patMedInhosp1.getInhospid()); @@ -828,6 +837,7 @@ if (type == 1) patMedInhosp2.setDeptcheckFlag("2"); if (type == 2) patMedInhosp2.setWardcheckFlag("2"); if (type == 3) patMedInhosp2.setDiagcheckFlag("2"); if (type == 0) patMedInhosp2.setMedcheckFlag("2"); patMedInhosp2.setRemark("çæå任塿¥éåæ» " + type); patMedInhospMapper.updatePatMedInhosp(patMedInhosp2); e.printStackTrace(); smartor/src/main/java/com/smartor/service/impl/PatSatisfactionServiceImpl.java
@@ -220,9 +220,9 @@ patSatisfactionDetailEntity.setScriptContent(ivrLibaTemplateScript.getScriptContent()); patSatisfactionDetailEntity.setAnswerPerson(CollectionUtils.isEmpty(fillCount) ? 0 : fillCount.size()); patSatisfactionDetailEntity.setNoAnswerPerson(CollectionUtils.isNotEmpty(fillCount) && CollectionUtils.isNotEmpty(subids) ? (subids.size() - fillCount.size()) : CollectionUtils.isNotEmpty(subids) ? subids.size() : 0); patSatisfactionDetailEntity.setAverageScore(averageScore(fillCount)); patSatisfactionDetailEntity.setMaxScore(maxScore(ivrLibaTemplateTargetoptions)); patSatisfactionDetailEntity.setMinScore(minScore(ivrLibaTemplateTargetoptions)); patSatisfactionDetailEntity.setAverageScore(String.valueOf(averageScore(fillCount))); patSatisfactionDetailEntity.setMaxScore(String.valueOf(maxScore(ivrLibaTemplateTargetoptions))); patSatisfactionDetailEntity.setMinScore(String.valueOf(minScore(ivrLibaTemplateTargetoptions))); patSatisfactionDetailEntity.setAnswerRate(CollectionUtils.isEmpty(subids) ? 0 : CollectionUtils.isEmpty(fillCount) ? 0 : fillCount.size() * 1.0 / subids.size()); patSatisfactionDetailEntity.setMatchedtextStats(matchedtextStats); patSatisfactionDetailEntities.add(patSatisfactionDetailEntity); @@ -292,13 +292,23 @@ patSatisfactionDetailEntity.setScriptContent(svyLibTemplateScript.getScriptContent()); patSatisfactionDetailEntity.setAnswerPerson(CollectionUtils.isEmpty(fillCount) ? 0 : fillCount.size()); patSatisfactionDetailEntity.setNoAnswerPerson(CollectionUtils.isNotEmpty(fillCount) && CollectionUtils.isNotEmpty(subids) ? (subids.size() - fillCount.size()) : CollectionUtils.isNotEmpty(subids) ? subids.size() : 0); patSatisfactionDetailEntity.setAverageScore(averageScore(fillCount)); patSatisfactionDetailEntity.setAverageScore(String.valueOf(averageScore(fillCount))); OptionalDouble maxOpt = svyLibTemplateTargetoptions.stream().filter(dto -> dto.getScore() != null).mapToDouble(dto -> dto.getScore().doubleValue()).max(); patSatisfactionDetailEntity.setMaxScore(maxOpt.isPresent() ? new BigDecimal(maxOpt.getAsDouble()).setScale(1, RoundingMode.HALF_UP).doubleValue() : 0.0); Double maxScore = svyLibTemplateTargetoptions.stream() .map(dto -> dto.getScore()) .filter(scoreStr -> scoreStr != null && !scoreStr.isEmpty()) .mapToDouble(Double::parseDouble) .max() .orElse(0.0); patSatisfactionDetailEntity.setMaxScore(String.valueOf(maxScore)); OptionalDouble minOpt = svyLibTemplateTargetoptions.stream().filter(dto -> dto.getScore() != null).mapToDouble(dto -> dto.getScore().doubleValue()).min(); patSatisfactionDetailEntity.setMinScore(minOpt.isPresent() ? new BigDecimal(minOpt.getAsDouble()).setScale(1, RoundingMode.HALF_UP).doubleValue() : 0.0); Double minScore = svyLibTemplateTargetoptions.stream() .map(dto -> dto.getScore()) .filter(scoreStr -> scoreStr != null && !scoreStr.isEmpty()) .mapToDouble(Double::parseDouble) .min() .orElse(0.0); patSatisfactionDetailEntity.setMinScore(String.valueOf(minScore)); patSatisfactionDetailEntity.setAnswerRate(CollectionUtils.isEmpty(subids) ? 0 : CollectionUtils.isEmpty(fillCount) ? 0 : fillCount.size() * 1.0 / subids.size()); patSatisfactionDetailEntity.setMatchedtextStats(matchedtextStats); @@ -397,9 +407,9 @@ patSatisfactionDetailEntity.setScriptContent(ivrLibaTemplateScript.getScriptContent()); patSatisfactionDetailEntity.setAnswerPerson(CollectionUtils.isEmpty(fillCount) ? 0 : fillCount.size()); patSatisfactionDetailEntity.setNoAnswerPerson(CollectionUtils.isNotEmpty(fillCount) && CollectionUtils.isNotEmpty(subids) ? (subids.size() - fillCount.size()) : CollectionUtils.isNotEmpty(subids) ? subids.size() : 0); patSatisfactionDetailEntity.setAverageScore(averageScore(fillCount)); patSatisfactionDetailEntity.setMaxScore(maxScore(ivrLibaTemplateTargetoptions)); patSatisfactionDetailEntity.setMinScore(minScore(ivrLibaTemplateTargetoptions)); patSatisfactionDetailEntity.setAverageScore(String.valueOf(averageScore(fillCount))); patSatisfactionDetailEntity.setMaxScore(String.valueOf(maxScore(ivrLibaTemplateTargetoptions))); patSatisfactionDetailEntity.setMinScore(String.valueOf(minScore(ivrLibaTemplateTargetoptions))); patSatisfactionDetailEntity.setAnswerRate(CollectionUtils.isEmpty(subids) ? 0 : CollectionUtils.isEmpty(fillCount) ? 0 : fillCount.size() * 1.0 / subids.size()); patSatisfactionDetailEntity.setMatchedtextStats(matchedtextStats); patSatisfactionDetailEntities.add(patSatisfactionDetailEntity); @@ -467,13 +477,23 @@ patSatisfactionDetailEntity.setScriptContent(svyLibTemplateScript.getScriptContent()); patSatisfactionDetailEntity.setAnswerPerson(CollectionUtils.isEmpty(fillCount) ? 0 : fillCount.size()); patSatisfactionDetailEntity.setNoAnswerPerson(CollectionUtils.isNotEmpty(fillCount) && CollectionUtils.isNotEmpty(subids) ? (subids.size() - fillCount.size()) : CollectionUtils.isNotEmpty(subids) ? subids.size() : 0); patSatisfactionDetailEntity.setAverageScore(averageScore(fillCount)); OptionalDouble maxOpt = svyLibTemplateTargetoptions.stream().filter(dto -> dto.getScore() != null).mapToDouble(dto -> dto.getScore().doubleValue()).max(); patSatisfactionDetailEntity.setMaxScore(maxOpt.isPresent() ? new BigDecimal(maxOpt.getAsDouble()).setScale(1, RoundingMode.HALF_UP).doubleValue() : 0.0); OptionalDouble minOpt = svyLibTemplateTargetoptions.stream().filter(dto -> dto.getScore() != null).mapToDouble(dto -> dto.getScore().doubleValue()).min(); patSatisfactionDetailEntity.setMinScore(minOpt.isPresent() ? new BigDecimal(minOpt.getAsDouble()).setScale(1, RoundingMode.HALF_UP).doubleValue() : 0.0); patSatisfactionDetailEntity.setAverageScore(String.valueOf(averageScore(fillCount))); Double maxScore = svyLibTemplateTargetoptions.stream() .map(dto -> dto.getScore()) .filter(scoreStr -> scoreStr != null && !scoreStr.isEmpty()) .mapToDouble(Double::parseDouble) .max() .orElse(0.0); patSatisfactionDetailEntity.setMaxScore(String.valueOf(maxScore)); Double minScore = svyLibTemplateTargetoptions.stream() .map(dto -> dto.getScore()) .filter(scoreStr -> scoreStr != null && !scoreStr.isEmpty()) .mapToDouble(Double::parseDouble) .min() .orElse(0.0); patSatisfactionDetailEntity.setMinScore(String.valueOf(minScore)); patSatisfactionDetailEntity.setAnswerRate(CollectionUtils.isEmpty(subids) ? 0 : CollectionUtils.isEmpty(fillCount) ? 0 : fillCount.size() * 1.0 / subids.size()); patSatisfactionDetailEntity.setMatchedtextStats(matchedtextStats); @@ -766,8 +786,13 @@ */ private Double maxScore(List<IvrLibaTemplateTargetoption> options) { if (CollectionUtils.isEmpty(options)) return 0.0; OptionalDouble maxOpt = options.stream().filter(dto -> dto.getScore() != null).mapToDouble(dto -> dto.getScore().doubleValue()).max(); return maxOpt.isPresent() ? new BigDecimal(maxOpt.getAsDouble()).setScale(1, RoundingMode.HALF_UP).doubleValue() : 0.0; Double maxScore = options.stream() .map(IvrLibaTemplateTargetoption::getScore) .filter(scoreStr -> scoreStr != null && !scoreStr.isEmpty()) .mapToDouble(Double::parseDouble) .max() .orElse(0.0); return maxScore; } /** @@ -778,8 +803,13 @@ */ private Double minScore(List<IvrLibaTemplateTargetoption> options) { if (CollectionUtils.isEmpty(options)) return 0.0; OptionalDouble minOpt = options.stream().filter(dto -> dto.getScore() != null).mapToDouble(dto -> dto.getScore().doubleValue()).min(); return minOpt.isPresent() ? new BigDecimal(minOpt.getAsDouble()).setScale(1, RoundingMode.HALF_UP).doubleValue() : 0.0; Double minScore = options.stream() .map(IvrLibaTemplateTargetoption::getScore) .filter(scoreStr -> scoreStr != null && !scoreStr.isEmpty()) .mapToDouble(Double::parseDouble) .min() .orElse(0.0); return minScore; } /** smartor/src/main/java/com/smartor/service/impl/ServiceOutPathServiceImpl.java
@@ -2,6 +2,7 @@ import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.RSAPublicKeyExample; import com.ruoyi.common.utils.StringUtils; import com.smartor.domain.ServiceOutPath; import com.smartor.domain.ServiceTask; import com.smartor.mapper.ServiceOutPathMapper; @@ -77,8 +78,8 @@ ServiceTask serviceTask = serviceTaskMapper.selectServiceTaskByTaskid(Long.valueOf(serviceOutPath.getParam1())); RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); String taskId = rsaPublicKeyExample.encryptedData(serviceOutPath.getParam1().toString(), pub_key); String patid= rsaPublicKeyExample.encryptedData(serviceOutPath.getParam2().toString(), pub_key); String subid= rsaPublicKeyExample.encryptedData(serviceOutPath.getParam6().toString(), pub_key); String patid = rsaPublicKeyExample.encryptedData(serviceOutPath.getParam2().toString(), pub_key); String subid = rsaPublicKeyExample.encryptedData(serviceOutPath.getParam6().toString(), pub_key); Date now = DateUtils.getNowDate(); ServiceOutPath sop = new ServiceOutPath(); sop.setParam1(taskId); @@ -95,7 +96,7 @@ serviceOutPathMapper.insertServiceOutPath(sop); //转æ16è¿å¶å¹¶ååradixåupdateTime serviceOutPath.setRadix(String.format("%03X", sop.getId())); serviceOutPath.setUrl(localIP + ":" + req_path + "/wt?p=" + sop.getRadix()); serviceOutPath.setUrl(StringUtils.isNotEmpty(req_path) ? localIP + ":" + req_path + "/wt?p=" + sop.getRadix() : localIP + "/wt?p=" + sop.getRadix()); serviceOutPathMapper.updateServiceOutPath(serviceOutPath); return serviceOutPath.getUrl(); } smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java
@@ -690,7 +690,7 @@ queryInhosp.setSerialnum(StringUtils.trim(patMedInhosp.getSerialnum())); queryInhosp.setOrgid(StringUtils.trim(dto.getOrgId())); queryInhosp.setInhospstate(cry); log.info("----------------è¿éçå ¥å为ï¼{},{}", queryInhosp.getPatno(), queryInhosp.getSerialnum()); // log.info("----------------è¿éçå ¥å为ï¼{},{}", queryInhosp.getPatno(), queryInhosp.getSerialnum()); List<PatMedInhosp> existingInhosps = patMedInhospService.selectPatMedInhosp(queryInhosp); if (cry.equals("0")) { @@ -733,7 +733,7 @@ } else { // ä¸åå¨åºé¢è®°å½ï¼å æ¥é¢å ¥é¢ï¼state=3ï¼ï¼åæ¥å ¥é¢ï¼state=0ï¼ queryInhosp.setInhospstate("3"); log.info("-----æ¥è¯¢é¢å ¥é¢è®°å½ï¼å ¥å为ï¼{}", queryInhosp); // log.info("-----æ¥è¯¢é¢å ¥é¢è®°å½ï¼å ¥å为ï¼{}", queryInhosp); List<PatMedInhosp> patMedInhospList = patMedInhospService.selectPatMedInhosp(queryInhosp); log.info("----é¢å ¥é¢æ¥è¯¢ç»æï¼{}", CollectionUtils.isEmpty(patMedInhospList) ? "空" : patMedInhospList.get(0).getSerialnum()); if (CollectionUtils.isNotEmpty(patMedInhospList)) { @@ -786,13 +786,14 @@ if (CollectionUtils.isEmpty(patMedInhospList3)) { try { //è·åä¸ä¸å ¥é¢ç³è¯·å Map<String, String> headers = buildRequestHeaders(); Map<String, Object> requestParams = new HashMap<>(); requestParams.put("orgId", "20001001"); requestParams.put("20001001", patArchive.getPatidHis()); String result = HttpUtils.sendPostByHeader(sltdPubPath + "/hospitalizedApply/query", new Gson().toJson(requestParams), headers); //æ ¹æ® encounterSourceId è·å importanceFlagCode emergencyLevelCode if (active.equals("sltd")) { Map<String, String> applyInfo = hospitalizedApply(dto.getEncounterSourceId(), dto.getOrgId()); if (ObjectUtils.isNotEmpty(applyInfo)) { patMedInhosp.setImportanceFlagCode(applyInfo.get("importanceFlagCode")); patMedInhosp.setEmergencyLevelCode(applyInfo.get("emergencyLevelCode")); } } patMedInhospService.insertPatMedInhosp(patMedInhosp); log.debug("æåæå ¥é¢å ¥é¢è®°å½ï¼serialnum={}", patMedInhosp.getSerialnum()); } catch (Exception e) { @@ -842,7 +843,7 @@ if ("1".equals(cry)) { patMedInhosp.setInhospstate("1"); ServiceSLTDDiagnosisResDTO mainDischargeDiagnosis = dto.getMainDischargeDiagnosis(); log.info("-----------mainDischargeDiagnosisç弿äºå?{}", mainDischargeDiagnosis); // log.info("-----------mainDischargeDiagnosisç弿äºå?{}", mainDischargeDiagnosis); if (!Objects.isNull(mainDischargeDiagnosis)) { if (mainDischargeDiagnosis.getIsMainDiagnosis() == 1) { patMedInhosp.setLeavediagname(StringUtils.defaultString(mainDischargeDiagnosis.getDiagnosisDictName(), "")); @@ -871,11 +872,13 @@ } else { setAdmissionInfo(patMedInhosp, dto); patMedInhosp.setEncounterSourceId(dto.getEncounterSourceId() == null ? "" : dto.getEncounterSourceId()); if (StringUtils.isNotEmpty(dto.getEncounterSourceId())) { if (StringUtils.isNotEmpty(dto.getEncounterSourceId()) && active.equals("sltd")) { //æ ¹æ® encounterSourceId è·å importanceFlagCode emergencyLevelCode Map<String, String> applyInfo = hospitalizedApply(dto.getEncounterSourceId(), dto.getOrgId()); patMedInhosp.setImportanceFlagCode(applyInfo.get("importanceFlagCode")); patMedInhosp.setEmergencyLevelCode(applyInfo.get("emergencyLevelCode")); if (!Objects.isNull(applyInfo)) { patMedInhosp.setImportanceFlagCode(applyInfo.get("importanceFlagCode")); patMedInhosp.setEmergencyLevelCode(applyInfo.get("emergencyLevelCode")); } } } @@ -903,7 +906,6 @@ patMedInhosp.setMedicalName(drugInfoMap.get("drugItemNames")); patMedInhosp.setMedicalCode(drugInfoMap.get("drugItemIds")); patMedInhosp.setMedicalCompany(drugInfoMap.get("drugManufacturerNames")); log.info("è·åè¯åä¿¡æ¯æåï¼åç§°={}, ç¼ç ={}, åå®¶={}", drugInfoMap.get("drugItemNames"), drugInfoMap.get("drugItemIds"), drugInfoMap.get("drugManufacturerNames")); } } @@ -958,7 +960,7 @@ String code = BigDecimal.valueOf(((Number) codeObj).longValue()).toPlainString(); if (!"200".equals(code)) { log.error("ãqueryMedicalOrdersãæ¥å£è¿å失败ï¼code={}, message={}", code, responseMap.get("message")); return result; return null; } } @@ -969,7 +971,7 @@ // éåå»å±åè¡¨ï¼æåè¯åä¿¡æ¯ Set<String> processedItemIds = new HashSet<>(); // ç¨äºå»éï¼åªæ ¹æ® itemId å»éï¼ for (Object item : dataList) { if (item instanceof Map) { Map<String, Object> itemMap = (Map<String, Object>) item; @@ -995,7 +997,7 @@ // è³å°æä¸ä¸ªæå¼ï¼å¤çæ¯ä¸ªå段 String itemName = (itemNameObj != null && StringUtils.isNotEmpty(itemNameObj.toString())) ? itemNameObj.toString() : ""; // itemId ç¹æ®å¤çï¼é¿å ç§å¦è®¡æ°æ³ï¼Gson å¯è½å°æ°åè§£æä¸º Doubleï¼ String itemId = ""; if (itemIdObj != null && StringUtils.isNotEmpty(itemIdObj.toString())) { @@ -1006,7 +1008,7 @@ itemId = itemIdObj.toString(); } } String manufacturerName = (manufacturerNameObj != null && StringUtils.isNotEmpty(manufacturerNameObj.toString())) ? manufacturerNameObj.toString() : ""; // åªæ ¹æ® itemId å»éï¼åä¸ç¼ç çè¯ååªä¿çä¸ä¸ªï¼ smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
@@ -165,14 +165,11 @@ @Override public Integer saveQuestionAnswer(ServiceSubTaskAnswerReq serviceSubTaskAnswerReq, Long flag) { //åæ°è§£å¯ Long tid = null; Long pid = null; Long subid = null; Double score = null; Long isabno = 0L; Set<String> allKeys = redisCache.getAllKeys(); if (ObjectUtils.isNotEmpty(serviceSubTaskAnswerReq)) { //éè¦ç«å³æ§è¡ RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); if (flag == 0) { @@ -185,18 +182,53 @@ pid = Long.valueOf(serviceSubTaskAnswerReq.getParam2()); subid = Long.valueOf(serviceSubTaskAnswerReq.getParam6()); } if (serviceSubTaskAnswerReq.getType() != null && serviceSubTaskAnswerReq.getType() == 2) { allKeys = new HashSet<>(); allKeys.add(pid + "-" + tid + "-" + subid + "-WJscriptCache"); } else if (serviceSubTaskAnswerReq.getType() != null && serviceSubTaskAnswerReq.getType() == 1) { allKeys = new HashSet<>(); allKeys.add(pid + "-" + tid + "-" + subid + "-SFscriptCache"); } //æ ¹æ® PIDãTIDãSUBID æå»ºéè¦å¤çç cache key String scriptCacheKeyPrefix = pid + "-" + tid + "-" + subid; Set<String> targetKeys = new HashSet<>(); if (serviceSubTaskAnswerReq != null && serviceSubTaskAnswerReq.getType() != null) { if (serviceSubTaskAnswerReq.getType() == 2) { targetKeys.add(scriptCacheKeyPrefix + "-WJscriptCache"); } else if (serviceSubTaskAnswerReq.getType() == 1) { targetKeys.add(scriptCacheKeyPrefix + "-SFscriptCache"); } } else { //å¦ææ²¡æ typeï¼åéåææ keyï¼ä¿çåæå ¼å®¹æ§ï¼ Set<String> allKeys = redisCache.getAllKeys(); for (String key : allKeys) { try { if (key.contains(scriptCacheKeyPrefix) && (key.endsWith("-WJscriptCache") || key.endsWith("-SFscriptCache"))) { targetKeys.add(key); } } catch (Exception e) { continue; } } } //ç¨äºæ¹éæ´æ°çåä»»å¡å表ï¼é¿å å¨å¾ªç¯ä¸é夿¥è¯¢ï¼ Map<String, ServiceSubtask> subtaskCache = new HashMap<>(); String subtaskCacheKey = subid != null ? subid.toString() : pid + "-" + tid; //å æ¥è¯¢ä¸æ¬¡åä»»å¡ä¿¡æ¯ ServiceSubtaskEntity ssVO = new ServiceSubtaskEntity(); if (subid != null) { ssVO.setSubId(subid); } else { ssVO.setTaskid(tid); ssVO.setPatid(pid); } List<ServiceSubtask> initialSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(ssVO); if (CollectionUtils.isNotEmpty(initialSubtaskList)) { subtaskCache.put(subtaskCacheKey, initialSubtaskList.get(0)); } String score = "0"; Long nextScriptno = null; aa: for (String key : allKeys) { for (String key : targetKeys) { String[] split = key.split("-"); //å å¤æï¼æ¯ä¸æ¯å½åæäº¤äººçï¼ä¸æ¯å½åæäº¤äººçï¼è·³è¿ try { @@ -227,10 +259,10 @@ if (map == null) continue aa; if (!Objects.isNull(map.get("nextScriptNo"))) nextScriptno = Long.valueOf(map.get("nextScriptNo")); if (score == null) { score = Double.valueOf(map.get("score")); if (score == null || score.isEmpty()) { score = map.get("score"); } else { score = score + Double.valueOf(map.get("score")); score = String.valueOf(Double.parseDouble(score) + Double.parseDouble(map.get("score"))); } } } @@ -247,9 +279,9 @@ if (!Objects.isNull(map.get("nextScriptNo"))) nextScriptno = Long.valueOf(map.get("nextScriptNo")); if (score == null) { score = Double.valueOf(map.get("score")); score = map.get("score"); } else { score = score + Double.valueOf(map.get("score")); score = String.valueOf(Double.parseDouble(score) + Double.parseDouble(map.get("score"))); } } } @@ -269,10 +301,10 @@ Map<String, String> map = setSFInfo(ivrTaskTemplateScriptVO, tid, pid, subid); if (!Objects.isNull(map.get("nextScriptNo"))) nextScriptno = Long.valueOf(map.get("nextScriptNo")); if (score == null) { score = Double.valueOf(map.get("score")); if (score == null || score.isEmpty()) { score = map.get("score"); } else { score = score + Double.valueOf(map.get("score")); score = String.valueOf(Double.parseDouble(score) + Double.parseDouble(map.get("score"))); } } } @@ -288,9 +320,9 @@ if (!Objects.isNull(map.get("nextScriptNo"))) nextScriptno = Long.valueOf(map.get("nextScriptNo")); if (score == null) { score = Double.valueOf(map.get("score")); score = map.get("score"); } else { score = score + Double.valueOf(map.get("score")); score = String.valueOf(Double.parseDouble(score) + Double.parseDouble(map.get("score"))); } } } @@ -298,39 +330,74 @@ } else { continue; } //å°è¯¥keyåvalueä»redisä¸ï¼å é¤ //å°è¯¥ key å value ä» redis ä¸ï¼å é¤ redisCache.deleteObject(key); //æ¥è¯¢åºè¯¥ä»»å¡ä¸æ£å¨æ§è¡çæ£è ä¿¡æ¯ ServiceSubtaskEntity ssVO = new ServiceSubtaskEntity(); ssVO.setTaskid(tid); ssVO.setPatid(pid); // ssVO.setSendstate(3L); List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(ssVO); //æ¥è¯¢åºè¯¥ä»»å¡ä¸æ£å¨æ§è¡çæ£è ä¿¡æ¯ï¼ä½¿ç¨ç¼åï¼ String currentSubtaskKey = subid != null ? subid.toString() : pid + "-" + tid; ServiceSubtask serviceSubtask; ServiceSubtask serviceSubtask = new ServiceSubtask(); serviceSubtask.setTaskid(tid); serviceSubtask.setPatid(pid); serviceSubtask.setSubmit(1L); if (!subtaskCache.containsKey(currentSubtaskKey)) { ServiceSubtaskEntity serviceSubtaskEntity = new ServiceSubtaskEntity(); if (subid != null) { serviceSubtaskEntity.setSubId(subid); } else { serviceSubtaskEntity.setTaskid(tid); serviceSubtaskEntity.setPatid(pid); } // ssVO.setSendstate(3L); List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskEntity); if (CollectionUtils.isNotEmpty(serviceSubtaskList)) { serviceSubtask = serviceSubtaskList.get(0); subtaskCache.put(currentSubtaskKey, serviceSubtask); } else { continue; } } else { serviceSubtask = subtaskCache.get(currentSubtaskKey); } serviceSubtask.setIsabnormal(serviceSubTaskAnswerReq.getIsabnormal()); serviceSubtask.setSendstate(6L); serviceSubtask.setExcep(serviceSubTaskAnswerReq.getExcep()); serviceSubtask.setFinishtime(new Date()); serviceSubtask.setUpdateTime(new Date()); log.error("å°è¯¥keyåvalueä»redisä¸,serviceSubtaskçå¼ä¸º--------ï¼{}", serviceSubtask); if (score != null) serviceSubtask.setScore(BigDecimal.valueOf(score)); if (score != null && !score.isEmpty()) serviceSubtask.setScore(score); serviceSubtaskMapper.updateServiceSubtaskByCondition(serviceSubtask); //ä¿®æ¹ä½é¢æ»¡æåº¦ç¶æï¼é¿å é夿¥è¯¢ï¼ if (serviceSubtask.getServiceType() != null && "6".equals(serviceSubtask.getServiceType())) { Long inhospid = serviceSubtask.getInhospid(); if (inhospid != null) { PatMedInhosp patMedInhosp = new PatMedInhosp(); patMedInhosp.setInhospMydFlag("1"); patMedInhosp.setInhospid(inhospid); patMedInhospMapper.updatePatMedInhosp(patMedInhosp); } } //å°å½ååéç¶ææ¹æ9宿 ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform(); serviceSubtaskPreachform.setPreachform(serviceSubtaskList.get(0).getCurrentPreachform()); serviceSubtaskPreachform.setSubid(serviceSubtask.getId()); serviceSubtaskPreachform.setTaskid(serviceSubtask.getTaskid()); List<ServiceSubtaskPreachform> serviceSubtaskPreachforms = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform); if (CollectionUtils.isNotEmpty(serviceSubtaskPreachforms)) { ServiceSubtaskPreachform ssp = serviceSubtaskPreachforms.get(0); ssp.setSendstate("9"); serviceSubtaskPreachformMapper.updateServiceSubtaskPreachform(ssp); //å°å½ååéç¶ææ¹æ 9 宿ï¼ç¼å preachform æ¥è¯¢ï¼ String currentPreachform = serviceSubtask.getCurrentPreachform(); if (StringUtils.isNotEmpty(currentPreachform)) { ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform(); serviceSubtaskPreachform.setPreachform(currentPreachform); if (subid != null) { serviceSubtaskPreachform.setSubid(subid); } else { Long id = serviceSubtask.getId(); Long tid_ = serviceSubtask.getTaskid(); if (id != null) { serviceSubtaskPreachform.setSubid(id); } else if (tid_ != null) { serviceSubtaskPreachform.setTaskid(tid_); } } List<ServiceSubtaskPreachform> serviceSubtaskPreachforms = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform); if (CollectionUtils.isNotEmpty(serviceSubtaskPreachforms)) { ServiceSubtaskPreachform ssp = serviceSubtaskPreachforms.get(0); ssp.setSendstate("9"); serviceSubtaskPreachformMapper.updateServiceSubtaskPreachform(ssp); } } } @@ -342,7 +409,7 @@ Long tid = Long.valueOf(serviceSubTaskCacheReq.getParam1()); Long pid = Long.valueOf(serviceSubTaskCacheReq.getParam2()); Long subid = Long.valueOf(serviceSubTaskCacheReq.getParam6()); Double score = null; String score = "0"; if (ObjectUtils.isNotEmpty(serviceSubTaskCacheReq)) { Long nextScriptno = null; String isabnormalFlag = "0"; @@ -396,9 +463,9 @@ nextScriptno = Long.valueOf(map.get("nextScriptNo")); if (score == null) { score = Double.valueOf(map.get("score")); score = map.get("score"); } else { score = score + Double.valueOf(map.get("score")); score = String.valueOf(Double.parseDouble(score) + Double.parseDouble(map.get("score"))); } isabnormalFlag = map.get("isabnormal"); } @@ -439,9 +506,9 @@ if (!Objects.isNull(map.get("nextScriptNo"))) nextScriptno = Long.valueOf(map.get("nextScriptNo")); if (score == null) { score = Double.valueOf(map.get("score")); score = map.get("score"); } else { score = score + Double.valueOf(map.get("score")); score = String.valueOf(Double.parseDouble(score) + Double.parseDouble(map.get("score"))); } isabnormalFlag = map.get("isabnormal"); } @@ -464,7 +531,7 @@ serviceSubtask.setExcep(isabnormalFlag); serviceSubtask.setFinishtime(new Date()); serviceSubtask.setUpdateTime(new Date()); if (score != null) serviceSubtask.setScore(BigDecimal.valueOf(score)); if (score != null && !score.isEmpty()) serviceSubtask.setScore(score); serviceSubtaskMapper.updateServiceSubtaskByCondition(serviceSubtask); //å°å½ååéç¶ææ¹æ9宿 @@ -520,7 +587,7 @@ } if (CollectionUtils.isNotEmpty(serviceSubTaskMYDAnswerReq.getSvyTaskTemplateScriptVOS())) { Double score = null; String score = "0"; List<SvyTaskTemplateScriptVO> svyTaskTemplateScriptVOS = serviceSubTaskMYDAnswerReq.getSvyTaskTemplateScriptVOS(); Long nextScriptno = null; @@ -552,13 +619,12 @@ if (map == null) continue; log.error("nextScriptNo çä¿¡æ¯ä¸ºï¼{}", map.get("nextScriptNo")); if (!Objects.isNull(map.get("nextScriptNo"))) nextScriptno = Long.valueOf(map.get("nextScriptNo")); if (!Objects.isNull(map.get("nextScriptNo"))) nextScriptno = Long.valueOf(map.get("nextScriptNo")); if (score == null) { score = Double.valueOf(map.get("score")); if (score == null || score.isEmpty()) { score = map.get("score"); } else { score = score + Double.valueOf(map.get("score")); score = String.valueOf(Double.parseDouble(score) + Double.parseDouble(map.get("score"))); } if (!Objects.isNull(map.get("id"))) { @@ -621,7 +687,7 @@ serviceSubtask.setUpdateTime(new Date()); serviceSubtask.setCreateTime(new Date()); serviceSubtask.setVisitTime(new Date()); if (score != null) serviceSubtask.setScore(BigDecimal.valueOf(score)); if (score != null && !score.isEmpty()) serviceSubtask.setScore(score); serviceSubtaskMapper.insertServiceSubtask(serviceSubtask); //å°å½ååéç¶ææ¹æ9宿 ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform(); @@ -982,13 +1048,23 @@ //è·åä¸ä¸é®é¢é项 SvyTaskTemplateTargetoption stt = null; Long isabnormalFlag = 0L; String scriptResultRaw = svyTaskTemplateScriptVO.getScriptResult(); //å»é¤ä¸æåå¼å·åè±æåå¼å·ä»¥å空ç½å符 String scriptResult = scriptResultRaw != null ? scriptResultRaw.replaceAll("^[\"\"]|[\"\"]$", "").trim() : null; for (SvyTaskTemplateTargetoption svyTaskTemplateTargetoption : svyTaskTemplateScriptVO.getSvyTaskTemplateTargetoptions()) { if (StringUtils.isNotEmpty(svyTaskTemplateTargetoption.getOptioncontent()) && svyTaskTemplateTargetoption.getOptioncontent().trim().equals(svyTaskTemplateScriptVO.getScriptResult())) stt = svyTaskTemplateTargetoption; String optionContent = svyTaskTemplateTargetoption.getOptioncontent(); if (StringUtils.isNotEmpty(optionContent) && StringUtils.isNotEmpty(scriptResult)) { //å»é¤ä¸¤ç«¯ç©ºç½å¹¶å¤çç¹æ®å符è¿è¡æ¯è¾ if (optionContent.trim().replaceAll("\\s+", "").equals(scriptResult.replaceAll("\\s+", ""))) { stt = svyTaskTemplateTargetoption; log.error("æ¾å°å¹é çé项"); break; // æ¾å°å¹é 项åè·³åºå¾ªç¯ } } } //夿ä¸ä¸å½åçé®é¢æ¯ä¸æ¯æ»¡æåº¦é®é¢ï¼å¹¶ä¸dutyDeptCodeæ¯å¦æå¼ï¼å¹¶ä¸é项æ¯ä¸æ¯å¼å¸¸é项ï¼å¦æå ¨ç¬¦åï¼å徿»¡æåº¦é®é¢å¼å¸¸è¡¨æ°å¢ if (StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getDutyDeptCode()) && stt != null && 1 == stt.getIsabnormal()) { //夿ä¸ä¸å½åçé®é¢æ¯ä¸æ¯æ»¡æåº¦é®é¢ï¼å¹¶ä¸ dutyDeptCode æ¯å¦æå¼ï¼å¹¶ä¸é项æ¯ä¸æ¯å¼å¸¸é项ï¼å¦æå ¨ç¬¦åï¼å徿»¡æåº¦é®é¢å¼å¸¸è¡¨æ°å¢ if (StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getDutyDeptCode()) && stt != null && Long.valueOf(1L).equals(stt.getIsabnormal()) || StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getDutyDeptCode()) && StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getIsMydException())) { isabnormalFlag = 1L; ServiceSubtaskDetailTrace subtaskDetailTrace = new ServiceSubtaskDetailTrace(); subtaskDetailTrace.setDetailId(serviceSubtaskDetail.getId()); @@ -996,24 +1072,25 @@ subtaskDetailTrace.setTaskid(serviceSubtaskDetailVO.getTaskid()); subtaskDetailTrace.setTemplateid(StringUtils.isNotEmpty(serviceSubtaskDetailVO.getTemplateid()) ? Long.valueOf(serviceSubtaskDetailVO.getTemplateid()) : null); subtaskDetailTrace.setTemplatequestionnum(svyTaskTemplateScriptVO.getScriptid()); subtaskDetailTrace.setSwitchid(stt.getId()); subtaskDetailTrace.setSwitchid(stt != null ? stt.getId() : null); subtaskDetailTrace.setQuestiontext(svyTaskTemplateScriptVO.getScriptContent()); subtaskDetailTrace.setQuestionvoice(null); subtaskDetailTrace.setCategoryname(svyTaskTemplateScriptVO.getCategoryName()); subtaskDetailTrace.setCategoryid(svyTaskTemplateScriptVO.getCategoryid()); //è·åææé项 subtaskDetailTrace.setTargetid(stt.getId()); subtaskDetailTrace.setTargetid(stt != null ? stt.getId() : null); subtaskDetailTrace.setTargetvalue(serviceSubtaskDetailVO.getTargetvalue()); subtaskDetailTrace.setMatchedtext(stt.getOptioncontent()); subtaskDetailTrace.setMatchedtext(stt != null ? stt.getOptioncontent() : svyTaskTemplateScriptVO.getIsMydException()); subtaskDetailTrace.setGuid(svyTaskTemplateScriptVO.getGuid()); subtaskDetailTrace.setValueType(serviceSubtaskDetail.getValueType()); subtaskDetailTrace.setIsMydException(svyTaskTemplateScriptVO.getIsMydException()); subtaskDetailTrace.setTemplateType(2); SvyLibScriptCategory svyLibScriptCategory = svyLibScriptCategoryMapper.selectSvyLibScriptCategoryById(svyTaskTemplateScriptVO.getCategoryid()); subtaskDetailTrace.setType(svyLibScriptCategory != null ? svyLibScriptCategory.getType() : null); subtaskDetailTrace.setScriptid(svyTaskTemplateScriptVO.getId()); subtaskDetailTrace.setAsrtext(stt.getOptioncontent()); subtaskDetailTrace.setAsrtext(stt != null ? stt.getOptioncontent() : svyTaskTemplateScriptVO.getIsMydException()); subtaskDetailTrace.setRecordpath(null); subtaskDetailTrace.setPatid(selectServiceSubtaskList.get(0).getPatid()); JSONObject patdescJson1 = new JSONObject(); @@ -1039,7 +1116,7 @@ subtaskDetailTrace.setId(existTraceId); traceService.updateServiceSubtaskDetailTtrace(subtaskDetailTrace); } else traceService.insertServiceSubtaskDetailTtrace(subtaskDetailTrace); } else if (ObjectUtils.isNotEmpty(stt) && stt.getIsabnormal() != 1L) { } else if (ObjectUtils.isNotEmpty(stt) && !Long.valueOf(1L).equals(stt.getIsabnormal())) { //è¿éä¸»è¦æ¯æå»æ¤äººåæå¼å¸¸éé¡¹æ¹æäºéå¼å¸¸çï¼è¿éå°±éè¦æ¥ä¸ä¸è¿æ¡æ°æ®æ¯ä¸æ¯å¨æ»¡æåº¦å¼å¸¸è¡¨ï¼å¦æå¨ï¼åè¦å é¤ Long existTraceId = existingTraceIdMap.get(svyTaskTemplateScriptVO.getId()); if (existTraceId != null) { @@ -1261,12 +1338,13 @@ //夿ä¸ä¸å½åçé®é¢æ¯ä¸æ¯æ»¡æåº¦é®é¢ï¼å¹¶ä¸dutyDeptCodeæ¯å¦æå¼ï¼å¹¶ä¸é项æ¯ä¸æ¯å¼å¸¸é项ï¼å¦æå ¨ç¬¦åï¼å徿»¡æåº¦é®é¢å¼å¸¸è¡¨æ°å¢ if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getDutyDeptCode()) && 1 == stt.getIsabnormal()) { if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getDutyDeptCode()) && 1 == stt.getIsabnormal() || StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getDutyDeptCode()) && StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIsMydException())) { isabnormalFlag = "1"; ServiceSubtaskDetailTrace subtaskDetailTrace = new ServiceSubtaskDetailTrace(); subtaskDetailTrace.setDetailId(serviceSubtaskDetail.getId()); subtaskDetailTrace.setSubId(serviceSubtaskDetailVO.getSubId()); subtaskDetailTrace.setTaskid(serviceSubtaskDetailVO.getTaskid()); subtaskDetailTrace.setIsMydException(serviceSubtaskDetailVO.getIsMydException()); subtaskDetailTrace.setTemplateid(ivrTaskTemplateScriptVO.getTemplateID() != null ? Long.valueOf(ivrTaskTemplateScriptVO.getTemplateID()) : null); subtaskDetailTrace.setTemplatequestionnum(ivrTaskTemplateScriptVO.getSort() == null ? null : Long.valueOf(ivrTaskTemplateScriptVO.getSort())); @@ -1276,7 +1354,7 @@ ivrLibaScriptAssort = ivrLibaScriptAssortMapper.selectIvrLibaScriptAssortById(ivrTaskTemplateScriptVO.getScriptAssortid()); //è·åç¨æ·éåºçé项çID subtaskDetailTrace.setSwitchid(stt.getId()); subtaskDetailTrace.setSwitchid(stt != null ? stt.getId() : null); subtaskDetailTrace.setQuestiontext(ivrTaskTemplateScriptVO.getScriptContent()); subtaskDetailTrace.setQuestionvoice(null); subtaskDetailTrace.setCategoryname(StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getScriptAssortname()) ? ivrTaskTemplateScriptVO.getScriptAssortname() : (ivrLibaScriptAssort != null ? ivrLibaScriptAssort.getIndexAssortName() : "")); smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -25,6 +25,7 @@ import com.smartor.domain.*; import com.smartor.domain.VO.HeLibraryCountVO; import com.smartor.domain.VO.ServiceSubtaskCotinueCountVO; import com.smartor.domain.VO.TransferDeptVO; import com.smartor.domain.entity.ServiceSubtaskEntity; import com.smartor.mapper.*; import com.smartor.service.*; @@ -416,9 +417,9 @@ } //æ£è è·åé访任å¡-éè¦æ¥è¯¢å个æ£è ï¼èº«ä»½è¯ï¼ææçä»»å¡ æ¯å® if (StringUtils.isNotEmpty(serviceSubtaskEntity.getOrgid()) && serviceSubtaskEntity.getOrgid().equals("47255004333112711A1001")) { if(ObjectUtils.isNotEmpty(serviceSubtaskEntity.getPatid())){ if (ObjectUtils.isNotEmpty(serviceSubtaskEntity.getPatid())) { PatArchive patArchive = patArchiveService.selectPatArchiveByPatid(serviceSubtaskEntity.getPatid()); if(ObjectUtils.isNotEmpty(patArchive) && StringUtils.isNotEmpty(patArchive.getIdcardno())){ if (ObjectUtils.isNotEmpty(patArchive) && StringUtils.isNotEmpty(patArchive.getIdcardno())) { serviceSubtaskEntity.setPatid(null); serviceSubtaskEntity.setSfzh(patArchive.getIdcardno()); } @@ -460,6 +461,28 @@ serviceSubtaskResList.add(serviceSubtaskRes); } return serviceSubtaskResList; } @Override public Integer transferDept(TransferDeptVO transferDeptVO) { log.info("transferDeptçå ¥å为ï¼{}", transferDeptVO); //æ¥è¯¢è¯¥æ£è çåä»»å¡ä¿¡æ¯ ServiceSubtask serviceSubtask = serviceSubtaskMapper.selectServiceSubtaskById(transferDeptVO.getSubId()); if (ObjectUtils.isEmpty(serviceSubtask)) throw new BaseException("转æ£è 失败ï¼è¯·è系管çåå¤ç"); //å é¤è¯¥æ£è çä¿¡æ¯éè¿subid serviceSubtaskMapper.deleteServiceSubtaskById(transferDeptVO.getSubId()); //ä¿®æ¹æ£è ç离é¢ç§å®¤ç åºéè¿inhospid忣è çä»»å¡çæç¶æ PatMedInhosp patMedInhosp = new PatMedInhosp(); patMedInhosp.setInhospid(serviceSubtask.getInhospid()); patMedInhosp.setLeaveldeptcode(transferDeptVO.getLeavelDeptCode()); patMedInhosp.setLeaveldeptname(transferDeptVO.getLeavelDeptName()); patMedInhosp.setLeavehospitaldistrictcode(transferDeptVO.getLeavehospitaldistrictcode()); patMedInhosp.setLeavehospitaldistrictname(transferDeptVO.getLeavehospitaldistrictname()); patMedInhosp.setDeptcheckFlag("0"); patMedInhosp.setWardcheckFlag("0"); patMedInhosp.setDiagcheckFlag("0"); return patMedInhospMapper.updatePatMedInhosp(patMedInhosp); } public Map<String, String> calculateAge(LocalDate birthdate, LocalDate today) { @@ -625,8 +648,8 @@ iServiceOutPathService.updateServiceOutPath(serviceOutPath); Map<String, Object> result = new HashMap<>(); result.put("url", localIP + ":" + req_path + "/wt?p=" + format); result.put("subId",serviceSubtask.getId()); result.put("url", StringUtils.isNotEmpty(req_path) ? localIP + ":" + req_path + "/wt?p=" + format : localIP + "/wt?p=" + format); result.put("subId", serviceSubtask.getId()); return result; } @@ -924,7 +947,7 @@ serviceTaskmedical.setMedicalCode(medicalNames[i]); serviceTaskmedical.setMedicalName(medicalcodes[i]); if (ObjectUtils.isNotEmpty(medicalCompanys)) serviceTaskmedical.setMedicalCompany(medicalcodes[i]); serviceTaskmedical.setMedicalCompany(medicalCompanys[i]); serviceTaskmedicalService.insertServiceTaskmedical(serviceTaskmedical); } } @@ -1020,10 +1043,8 @@ if (schedule == null) { throw new BaseException("appltype=5 ä»»å¡ç»ï¼æªæ¾å° taskid=" + serviceTask.getTaskid() + " ç计å"); } List<ServiceTaskScheduleDetail> detailList = serviceTaskScheduleService.selectDetailByScheduleid(schedule.getId()); scheduleSubtaskBuilder.buildSubtasksForPatient( serviceTask, serviceTaskVO.getPreachformList(), schedule, detailList, patTaskRelevance, serviceSubtask); List<ServiceTaskScheduleDetail> detailList = serviceTaskScheduleService.selectDetailByScheduleid(schedule.getId()); scheduleSubtaskBuilder.buildSubtasksForPatient(serviceTask, serviceTaskVO.getPreachformList(), schedule, detailList, patTaskRelevance, serviceSubtask); continue; } @@ -1050,7 +1071,8 @@ } } } else if (serviceTaskVO.getIsoperation() != null && serviceTaskVO.getIsoperation() == 2) { } else if (serviceTaskVO.getIsoperation() != null && serviceTaskVO.getIsoperation() == 2) { //ä»»å¡ä¿®æ¹ if (ObjectUtils.isNotEmpty(serviceTaskVO.getSendTimeslot())) serviceTask.setSendTimeSlot(JSON.toJSONString(serviceTaskVO.getSendTimeslot())); @@ -1205,7 +1227,7 @@ ServiceTaskmedical serviceTaskmedical = new ServiceTaskmedical(); serviceTaskmedical.setTaskId(serviceTask.getTaskid()); serviceTaskmedical.setTaskName(serviceTask.getTaskName()); if (StringUtils.isEmpty(serviceTaskVO.getIcd10code())) { if (StringUtils.isEmpty(serviceTaskVO.getMedicalCode())) { throw new BaseException("è¯åç¼ç 为空"); } serviceTaskmedical.setLongtask(Long.valueOf(serviceTask.getLongTask())); @@ -1221,21 +1243,24 @@ if (StringUtils.isNotEmpty(serviceTaskVO.getMedicalCode())) { String[] medicalCodes = serviceTaskVO.getMedicalCode().split(","); String[] medicalNames = serviceTaskVO.getMedicalName().split(","); String[] medicalCompany = serviceTaskVO.getMedicalCompany().split(","); String[] medicalCompanys = serviceTaskVO.getMedicalCompany().split(","); if (!active.equals("nhfy") && !active.equals("druid")) { if (medicalCodes.length != medicalNames.length) { throw new BaseException("è¯åç¼ç åè¯ååç§°æ°éä¸ä¸è´"); if (medicalCodes.length != medicalNames.length && medicalNames.length != medicalCompanys.length) { throw new BaseException("è¯åç¼ç åè¯ååç§°æ°éä¸ä¸è´æè è¯ååç§°åè¯åå ¬å¸æ°éä¸ä¸è´"); } } for (int i = 0; i < medicalCodes.length; i++) { //å æ¥è¯¢ä¸ä¸æ¯å¦åå¨ ServiceTaskmedical serviceTaskmedical1 = new ServiceTaskmedical(); serviceTaskmedical1.setTaskId(serviceTaskVO.getTaskid()); serviceTaskmedical1.setMedicalCode(medicalCodes[i]); serviceTaskmedical1.setMedicalName(medicalNames[i]); serviceTaskmedical1.setMedicalCompany(medicalCompanys[i]); List<ServiceTaskmedical> serviceTaskmedicals = serviceTaskmedicalService.selectServiceTaskmedicalList(serviceTaskmedical1); serviceTaskmedical.setMedicalCode(medicalCodes[i]); serviceTaskmedical.setMedicalName(medicalNames[i]); serviceTaskmedical.setMedicalCompany(medicalCompanys[i]); log.info("----serviceTaskmedicalæ´æ°çå¼ä¸ºï¼{}", serviceTaskmedical); if (CollectionUtils.isNotEmpty(serviceTaskmedicals)) { serviceTaskmedical.setId(serviceTaskmedicals.get(0).getId()); @@ -1363,12 +1388,10 @@ if (schedule == null) { throw new BaseException("appltype=5 ä»»å¡ç»ï¼æªæ¾å° taskid=" + serviceTask.getTaskid() + " ç计å"); } List<ServiceTaskScheduleDetail> detailList = serviceTaskScheduleService.selectDetailByScheduleid(schedule.getId()); List<ServiceTaskScheduleDetail> detailList = serviceTaskScheduleService.selectDetailByScheduleid(schedule.getId()); serviceSubtask.setUpdateBy(serviceTask.getUpdateBy()); serviceSubtask.setCreateBy(serviceTask.getUpdateBy()); scheduleSubtaskBuilder.buildSubtasksForPatient( serviceTask, serviceTaskVO.getPreachformList(), schedule, detailList, patTaskRelevance, serviceSubtask); scheduleSubtaskBuilder.buildSubtasksForPatient(serviceTask, serviceTaskVO.getPreachformList(), schedule, detailList, patTaskRelevance, serviceSubtask); continue; } if (patTaskRelevance.getIsoperation() == 2) { @@ -1830,7 +1853,7 @@ Long id = serviceSubtask.getId(); //å æ´æ°ä¸ä¸åæ° double score = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE"); serviceSubtask.setScore(BigDecimal.valueOf(score)); serviceSubtask.setScore(String.valueOf(score)); serviceSubtask.setFinishtime(new Date()); serviceSubtask.setUpdateTime(new Date()); log.error("å æ´æ°ä¸ä¸åæ°,çµè¯çserviceSubtaskçå¼ä¸ºï¼{}", serviceSubtask); @@ -1924,236 +1947,48 @@ //ç¨æ¥æ è®°ï¼æ¯å¦æå¹é ä¸ç Integer flag = 0; //1-AIè¯å« String url = configService.selectConfigByKey("sys.voice.match.ai.url",phoneCallReqYQVO.getOrgid()); String url = configService.selectConfigByKey("sys.voice.match.ai.url", phoneCallReqYQVO.getOrgid()); if (ObjectUtils.isNotEmpty(url)) { PhoneCallBackYQVO aiMatchResult = AiMatch(url, phoneCallReqYQVO, phoneCallBackYQVO, ivrTaskTemplateScriptVO, serviceSubtask, ivrTaskTemplate, ivrTaskTemplateScripts, scriptId, flag, phoneCallReqYQVO.getUuid()); if(aiMatchResult != null){ return aiMatchResult; } } else { //æ¯éæ©é¢ for (int j = 0; j < ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().size(); j++) { log.error("phoneCallReqYQVO.getAsrtext()çå¼ä¸ºï¼{}", phoneCallReqYQVO.getAsrtext()); if (StringUtils.isEmpty(phoneCallReqYQVO.getAsrtext())) { continue; if (ObjectUtils.isNotEmpty(url)) { PhoneCallBackYQVO aiMatchResult = AiMatch(url, phoneCallReqYQVO, phoneCallBackYQVO, ivrTaskTemplateScriptVO, serviceSubtask, ivrTaskTemplate, ivrTaskTemplateScripts, scriptId, flag, phoneCallReqYQVO.getUuid()); if (aiMatchResult != null) { return aiMatchResult; } boolean matchedFlag = false; //å å« Matcher matcher = null; if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex())) { Pattern pattern = Pattern.compile(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex()); matcher = pattern.matcher(phoneCallReqYQVO.getAsrtext()); } //ä¸å å« Matcher matcher2 = null; if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2())) { Pattern pattern2 = Pattern.compile(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2()); matcher2 = pattern2.matcher(phoneCallReqYQVO.getAsrtext()); } if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2()) && matcher2.matches() && StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex()) && matcher.matches() || StringUtils.isEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex()) && StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2()) && matcher2.matches() || StringUtils.isEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2()) && StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex()) && matcher.matches()) { matchedFlag = true; } //说æå¹é æ£ç¡®äº if(matchedFlag){ //è¿éåºè¯¥å å¤æç±»åï¼å»åä¿®æ¹ï¼è®¾ç½®IsUserOperationæ¯åéé¢çæ¹æ³ log.info("å¹é æ£ç¡®äºå--------------"); ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).setIsUserOperation(1); serviceTaskScriptTargetoptionMapper.updateIvrTaskTemplateTargetoption(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j)); //å°æ£è çåç¾åè¿service_subtask_detailä¸ ServiceSubTaskDetailReq serviceSubTaskDetailReq = new ServiceSubTaskDetailReq(); List<ServiceSubtaskDetail> serviceSubtaskDetailList = new ArrayList<>(); ivrTaskTemplateScriptVO.setQuestionResult(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getOptiondesc()); ServiceSubtaskDetail serviceSubtaskDetail = getServiceSubtaskDetail(phoneCallReqYQVO, ivrTaskTemplateScriptVO, serviceSubtask, ivrTaskTemplate); //ä¿®æ¹ä¸ä¸è¯é³è·¯å¾ï¼æ¹æå端å¯ä»¥è®¿é®çï¼åå°æ°æ®åºä¸ï¼ if (StringUtils.isNotEmpty(serviceSubtaskDetail.getQuestionvoice())) { String questionvoice = serviceSubtaskDetail.getQuestionvoice(); String[] split = questionvoice.split("\\\\"); if (split.length > 0) { String lastPart = split[split.length - 1]; serviceSubtaskDetail.setQuestionvoice(voicePathPrefix + lastPart); } } else { //æ¯éæ©é¢ for (int j = 0; j < ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().size(); j++) { log.error("phoneCallReqYQVO.getAsrtext()çå¼ä¸ºï¼{}", phoneCallReqYQVO.getAsrtext()); if (StringUtils.isEmpty(phoneCallReqYQVO.getAsrtext())) { continue; } serviceSubtaskDetailList.add(serviceSubtaskDetail); serviceSubTaskDetailReq.setServiceSubtaskDetailList(serviceSubtaskDetailList); serviceSubTaskDetailReq.setGuid(phoneCallReqYQVO.getGuid()); serviceSubTaskDetailReq.setOrgid(phoneCallReqYQVO.getOrgid()); saveQuestionAnswerPhone(serviceSubTaskDetailReq); //夿ä¸ä¸å½åçé®é¢æ¯ä¸æ¯æ»¡æåº¦é®é¢ï¼å¹¶ä¸dutyDeptCodeæ¯å¦æå¼ï¼å¹¶ä¸é项æ¯ä¸æ¯å¼å¸¸é项ï¼å¦æå ¨ç¬¦åï¼å徿»¡æåº¦é®é¢å¼å¸¸è¡¨æ°å¢ if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getDutyDeptCode()) && 1 == ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getIsabnormal()) { ServiceSubtaskDetailTrace subtaskDetailTrace = new ServiceSubtaskDetailTrace(); //ç¨taskidãsubidåscriptidå»è·ådetailid ServiceSubtaskDetail ssd = new ServiceSubtaskDetail(); ssd.setSubId(serviceSubtask.getId()); ssd.setTaskid(serviceSubtask.getTaskid()); ssd.setScriptid(StringUtils.isNotEmpty(scriptId) ? Long.valueOf(scriptId) : null); List<ServiceSubtaskDetail> serviceSubtaskDetails = serviceSubtaskDetailMapper.selectServiceSubtaskDetailList(ssd); subtaskDetailTrace.setDetailId(CollectionUtils.isNotEmpty(serviceSubtaskDetails) ? serviceSubtaskDetails.get(0).getId() : null); subtaskDetailTrace.setSubId(serviceSubtask.getId()); subtaskDetailTrace.setTaskid(serviceSubtask.getTaskid()); subtaskDetailTrace.setTemplateid(ivrTaskTemplateScriptVO.getId()); subtaskDetailTrace.setTemplatequestionnum(ivrTaskTemplateScriptVO.getScriptno()); subtaskDetailTrace.setSwitchid(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getId()); subtaskDetailTrace.setQuestiontext(ivrTaskTemplateScriptVO.getScriptContent()); subtaskDetailTrace.setQuestionvoice(null); subtaskDetailTrace.setCategoryname(ivrTaskTemplateScriptVO.getScriptAssortname()); subtaskDetailTrace.setCategoryid(ivrTaskTemplateScriptVO.getScriptAssortid()); //è·åææé项 String optionDescStr = Optional.ofNullable(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList()).filter(list -> !list.isEmpty()).map(list -> list.stream().map(IvrTaskTemplateTargetoption::getOptiondesc).filter(Objects::nonNull).collect(Collectors.joining("&"))).orElse(""); subtaskDetailTrace.setTargetid(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getId()); subtaskDetailTrace.setTargetvalue(optionDescStr); subtaskDetailTrace.setMatchedtext(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getOptiondesc()); subtaskDetailTrace.setValueType(serviceSubtaskDetails.get(0).getValueType()); subtaskDetailTrace.setTemplateType(1); SvyLibScriptCategory svyLibScriptCategory = svyLibScriptCategoryMapper.selectSvyLibScriptCategoryById(ivrTaskTemplateScriptVO.getScriptAssortid()); subtaskDetailTrace.setType(svyLibScriptCategory.getType()); subtaskDetailTrace.setScriptid(ivrTaskTemplateScriptVO.getId()); subtaskDetailTrace.setAsrtext(phoneCallReqYQVO.getAsrtext()); subtaskDetailTrace.setRecordpath(phoneCallReqYQVO.getRecordpath()); subtaskDetailTrace.setPatid(serviceSubtask.getPatid()); JSONObject patdescJson = new JSONObject(); patdescJson.put("sendname", serviceSubtask.getSendname()); patdescJson.put("phone", serviceSubtask.getPhone()); patdescJson.put("age", serviceSubtask.getAge()); patdescJson.put("sex", serviceSubtask.getSex() != null ? serviceSubtask.getSex() == 1 ? "ç·" : "女" : null); subtaskDetailTrace.setPatdesc(patdescJson.toJSONString()); subtaskDetailTrace.setTodeptcode(ivrTaskTemplateScriptVO.getDutyDeptCode()); subtaskDetailTrace.setTodeptname(ivrTaskTemplateScriptVO.getDutyDeptName()); subtaskDetailTrace.setOrgid(serviceSubtask.getOrgid()); subtaskDetailTrace.setHandleFlag("0"); subtaskDetailTrace.setGuid(phoneCallReqYQVO.getGuid()); subtaskDetailTrace.setCreateTime(new Date()); subtaskDetailTrace.setUpdateTime(new Date()); subtaskDetailTrace.setOrgid(phoneCallReqYQVO.getOrgid()); traceService.insertServiceSubtaskDetailTtrace(subtaskDetailTrace); boolean matchedFlag = false; //å å« Matcher matcher = null; if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex())) { Pattern pattern = Pattern.compile(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex()); matcher = pattern.matcher(phoneCallReqYQVO.getAsrtext()); } //ä¸å å« Matcher matcher2 = null; if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2())) { Pattern pattern2 = Pattern.compile(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2()); matcher2 = pattern2.matcher(phoneCallReqYQVO.getAsrtext()); } //夿ä¸ä¸ï¼è¿ä¸ªéé¡¹ç»ææ¯ä¸æ¯è¿æç»§ç»é®ä¸å»çå¿ è¦ï¼ä¾å¦éé¡¹ç»ææ¯å«äººä¸æ³ç»§ç»åçé®é¢ï¼å°±è¦ç»ææ if (ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getIsEnd() == 1) { redisCache.deleteObject(serviceSubtask.getId() + "-" + serviceSubtask.getPhone()); redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "SCORE"); redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "PlayEventCallbackPlaystop"); redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "noVoice"); //å¨redisä¸ä¿åä¸ä¸ç»æè¯ï¼å¨è°ç¨æçµè¯çæ¹æ³æ¶å é¤ ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid()); redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "- jsy", serviceTask.getJsy(), 120, TimeUnit.MINUTES); phoneCallBackYQVO.setType("text"); phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + serviceTask.getJsy()); //è®°å½ç¶æ setFailPreachForm(serviceSubtask, "3", "çµè¯æ¨æå·²å®æ", "9"); return phoneCallBackYQVO; if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2()) && matcher2.matches() && StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex()) && matcher.matches() || StringUtils.isEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex()) && StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2()) && matcher2.matches() || StringUtils.isEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2()) && StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex()) && matcher.matches()) { matchedFlag = true; } //说æå¹é æ£ç¡®äº if (matchedFlag) { //è¿éåºè¯¥å å¤æç±»åï¼å»åä¿®æ¹ï¼è®¾ç½®IsUserOperationæ¯åéé¢çæ¹æ³ log.info("å¹é æ£ç¡®äºå--------------"); ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).setIsUserOperation(1); serviceTaskScriptTargetoptionMapper.updateIvrTaskTemplateTargetoption(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j)); flag = 1; //å°å½ååçææ¥ç¶æå é¤ï¼ç»ä¸ä¸é¢è®©ä½ redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "PlayEventCallbackPlaystop"); // //è·åä¸ä¸é¢ log.error("è·åä¸ä¸é¢çä¿¡æ¯ï¼{}", ivrTaskTemplateScriptVO); if (ivrTaskTemplateScriptVO.getBranchFlag().equals("1") || ivrTaskTemplateScriptVO.getBranchFlag().equals("0") && ivrTaskTemplateScriptVO.getNextScriptno() != null && ivrTaskTemplateScriptVO.getNextScriptno() != 0) { Long nextQuestion = null; if (ivrTaskTemplateScriptVO.getBranchFlag().equals("1")) { nextQuestion = ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getNextQuestion(); //æ´æ°åæ° double score = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE"); score = BigDecimal.valueOf(score).add(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getScore()).doubleValue(); redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "SCORE", score); } else { nextQuestion = ivrTaskTemplateScriptVO.getNextScriptno(); //æ´æ°åæ° Object obj = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE"); Double score = (obj == null ? new Double(0.00) : new Double(((Double) obj).doubleValue())); score = BigDecimal.valueOf(score).add(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getScore()).doubleValue(); redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "SCORE", score, 120, TimeUnit.MINUTES); } if (nextQuestion == null || nextQuestion == 0L) { //妿ä¸ä¸é¢ä¸ºç©ºï¼æè 为0ï¼åææº ServiceSubtask ss = new ServiceSubtask(); ss.setId(serviceSubtask.getId()); ss.setSendstate(6L); ss.setRemark("çµè¯æ¨æå·²å®æ"); serviceSubtaskMapper.updateServiceSubtask(ss); //è®°å½ç¶æ setFailPreachForm(serviceSubtask, "3", "çµè¯æ¨æå·²å®æ", "9"); redisCache.deleteObject(serviceSubtask.getId() + "-" + serviceSubtask.getPhone()); redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "SCORE"); redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "PlayEventCallbackPlaystop"); redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "noVoice"); //å¨redisä¸ä¿åä¸ä¸ç»æè¯ï¼å¨è°ç¨æçµè¯çæ¹æ³æ¶å é¤ ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid()); redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "- jsy", serviceTask.getJsy(), 120, TimeUnit.MINUTES); phoneCallBackYQVO.setType("text"); phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + serviceTask.getJsy()); //å°ç»æåè¿detail表 ServiceSubTaskDetailReq ssdReq = new ServiceSubTaskDetailReq(); List<ServiceSubtaskDetail> serviceSubtaskDetailList2 = new ArrayList<>(); serviceSubtaskDetailList.add(getServiceSubtaskDetail(phoneCallReqYQVO, ivrTaskTemplateScriptVO, serviceSubtask, ivrTaskTemplate)); serviceSubTaskDetailReq.setServiceSubtaskDetailList(serviceSubtaskDetailList2); ssdReq.setGuid(phoneCallReqYQVO.getGuid()); ssdReq.setOrgid(phoneCallReqYQVO.getOrgid()); saveQuestionAnswerPhone(ssdReq); return phoneCallBackYQVO; } for (IvrTaskTemplateScript script : ivrTaskTemplateScripts) { if (script.getSort() == nextQuestion.intValue()) { phoneCallBackYQVO.setType("text"); phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue()); String scriptContent = StringUtils.isNotEmpty(script.getIvrtext()) ? script.getIvrtext() : script.getScriptContent(); log.error("ä¸ä¸é¢é®é¢ï¼{}", scriptContent); log.error("ä¸ä¸é¢çå任塿¯ï¼{}", serviceSubtask); phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + getObject(serviceSubtask, scriptContent)); //å°è¯¥æ£è çRedisä¸çé¢ç®IDï¼è¿è¡ä¿®æ¹ redisCache.setCacheObject(phoneCallReqYQVO.getTaskid().trim() + "-" + phoneCallReqYQVO.getPhone().trim(), script.getId().toString(), 120, TimeUnit.MINUTES); //å 餿 ååº redisCache.deleteObject(phoneCallReqYQVO.getTaskid().trim() + "&&" + "mate" + "&&" + phoneCallReqYQVO.getUuid()); } } } else if (ivrTaskTemplateScriptVO.getNextScriptno() == null || ivrTaskTemplateScriptVO.getNextScriptno() == 0) { ServiceTask serviceTask1 = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid()); phoneCallBackYQVO.setType("text"); phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue()); //æ´æ°ä¸ä¸åæ° double score = 0.0; Object scoreObj = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE"); if (ObjectUtils.isNotEmpty(scoreObj)) score = (double) scoreObj; serviceSubtask.setScore(BigDecimal.valueOf(score)); serviceSubtask.setFinishtime(new Date()); serviceSubtask.setSendstate(6L); serviceSubtask.setRemark("çµè¯æ¨æå·²å®æ"); serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); //è®°å½ç¶æ setFailPreachForm(serviceSubtask, "3", "çµè¯æ¨æå·²å®æ", "9"); //è®¾ç½®ç»æè¯ phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + serviceTask1.getJsy()); Long id = serviceSubtask.getId(); Map<String, String> map = delRedisValue(null, id.toString()); log.error("mapçå¼ä¸ºï¼{}", map); if (ObjectUtils.isNotEmpty(map)) redisCache.setCacheObject(map.get("cacheName"), map.get("val")); redisCache.deleteObject(serviceSubtask.getId() + "-" + serviceSubtask.getPhone()); redisCache.deleteObject(phoneCallReqYQVO.getTaskid().trim() + "&&" + "mate" + "&&" + phoneCallReqYQVO.getUuid()); redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "SCORE"); redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "PlayEventCallbackPlaystop"); //å¨redisä¸ä¿åä¸ä¸ç»æè¯ï¼å¨è°ç¨æçµè¯çæ¹æ³æ¶å é¤ ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid()); redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "- jsy", serviceTask.getJsy(), 120, TimeUnit.MINUTES); // return phoneCallBackYQVO; } } else { log.info("没æå¹é ä¸----------------------------"); //flag=0,è¯´ææ²¡ å¹é ä¸ï¼ä¹è¦ææ£è 说çè¯è®°å½ä¸æ¥ if (j == ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().size() - 1 && flag == 0) { //å°æ£è çåç¾åè¿service_subtask_detailä¸ ServiceSubTaskDetailReq serviceSubTaskDetailReq = new ServiceSubTaskDetailReq(); List<ServiceSubtaskDetail> serviceSubtaskDetailList = new ArrayList<>(); ivrTaskTemplateScriptVO.setQuestionResult(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getOptiondesc()); ServiceSubtaskDetail serviceSubtaskDetail = getServiceSubtaskDetail(phoneCallReqYQVO, ivrTaskTemplateScriptVO, serviceSubtask, ivrTaskTemplate); //ä¿®æ¹ä¸ä¸è¯é³è·¯å¾ï¼æ¹æå端å¯ä»¥è®¿é®çï¼åå°æ°æ®åºä¸ï¼ if (StringUtils.isNotEmpty(serviceSubtaskDetail.getQuestionvoice())) { @@ -2165,17 +2000,203 @@ } } serviceSubtaskDetailList.add(serviceSubtaskDetail); //å¦ææ²¡æ å¹é ä¸ï¼è¿ä¸ªå¿ 须为null serviceSubtaskDetailList.get(0).setMatchedtext(""); serviceSubTaskDetailReq.setServiceSubtaskDetailList(serviceSubtaskDetailList); serviceSubTaskDetailReq.setGuid(phoneCallReqYQVO.getGuid()); serviceSubTaskDetailReq.setOrgid(phoneCallReqYQVO.getOrgid()); saveQuestionAnswerPhone(serviceSubTaskDetailReq); //夿ä¸ä¸å½åçé®é¢æ¯ä¸æ¯æ»¡æåº¦é®é¢ï¼å¹¶ä¸dutyDeptCodeæ¯å¦æå¼ï¼å¹¶ä¸é项æ¯ä¸æ¯å¼å¸¸é项ï¼å¦æå ¨ç¬¦åï¼å徿»¡æåº¦é®é¢å¼å¸¸è¡¨æ°å¢ if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getDutyDeptCode()) && 1 == ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getIsabnormal()) { ServiceSubtaskDetailTrace subtaskDetailTrace = new ServiceSubtaskDetailTrace(); //ç¨taskidãsubidåscriptidå»è·ådetailid ServiceSubtaskDetail ssd = new ServiceSubtaskDetail(); ssd.setSubId(serviceSubtask.getId()); ssd.setTaskid(serviceSubtask.getTaskid()); ssd.setScriptid(StringUtils.isNotEmpty(scriptId) ? Long.valueOf(scriptId) : null); List<ServiceSubtaskDetail> serviceSubtaskDetails = serviceSubtaskDetailMapper.selectServiceSubtaskDetailList(ssd); subtaskDetailTrace.setDetailId(CollectionUtils.isNotEmpty(serviceSubtaskDetails) ? serviceSubtaskDetails.get(0).getId() : null); subtaskDetailTrace.setSubId(serviceSubtask.getId()); subtaskDetailTrace.setTaskid(serviceSubtask.getTaskid()); subtaskDetailTrace.setTemplateid(ivrTaskTemplateScriptVO.getId()); subtaskDetailTrace.setTemplatequestionnum(ivrTaskTemplateScriptVO.getScriptno()); subtaskDetailTrace.setSwitchid(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getId()); subtaskDetailTrace.setQuestiontext(ivrTaskTemplateScriptVO.getScriptContent()); subtaskDetailTrace.setQuestionvoice(null); subtaskDetailTrace.setCategoryname(ivrTaskTemplateScriptVO.getScriptAssortname()); subtaskDetailTrace.setCategoryid(ivrTaskTemplateScriptVO.getScriptAssortid()); //è·åææé项 String optionDescStr = Optional.ofNullable(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList()).filter(list -> !list.isEmpty()).map(list -> list.stream().map(IvrTaskTemplateTargetoption::getOptiondesc).filter(Objects::nonNull).collect(Collectors.joining("&"))).orElse(""); subtaskDetailTrace.setTargetid(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getId()); subtaskDetailTrace.setTargetvalue(optionDescStr); subtaskDetailTrace.setMatchedtext(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getOptiondesc()); subtaskDetailTrace.setValueType(serviceSubtaskDetails.get(0).getValueType()); subtaskDetailTrace.setTemplateType(1); SvyLibScriptCategory svyLibScriptCategory = svyLibScriptCategoryMapper.selectSvyLibScriptCategoryById(ivrTaskTemplateScriptVO.getScriptAssortid()); subtaskDetailTrace.setType(svyLibScriptCategory.getType()); subtaskDetailTrace.setScriptid(ivrTaskTemplateScriptVO.getId()); subtaskDetailTrace.setAsrtext(phoneCallReqYQVO.getAsrtext()); subtaskDetailTrace.setRecordpath(phoneCallReqYQVO.getRecordpath()); subtaskDetailTrace.setPatid(serviceSubtask.getPatid()); JSONObject patdescJson = new JSONObject(); patdescJson.put("sendname", serviceSubtask.getSendname()); patdescJson.put("phone", serviceSubtask.getPhone()); patdescJson.put("age", serviceSubtask.getAge()); patdescJson.put("sex", serviceSubtask.getSex() != null ? serviceSubtask.getSex() == 1 ? "ç·" : "女" : null); subtaskDetailTrace.setPatdesc(patdescJson.toJSONString()); subtaskDetailTrace.setTodeptcode(ivrTaskTemplateScriptVO.getDutyDeptCode()); subtaskDetailTrace.setTodeptname(ivrTaskTemplateScriptVO.getDutyDeptName()); subtaskDetailTrace.setOrgid(serviceSubtask.getOrgid()); subtaskDetailTrace.setHandleFlag("0"); subtaskDetailTrace.setGuid(phoneCallReqYQVO.getGuid()); subtaskDetailTrace.setCreateTime(new Date()); subtaskDetailTrace.setUpdateTime(new Date()); subtaskDetailTrace.setOrgid(phoneCallReqYQVO.getOrgid()); traceService.insertServiceSubtaskDetailTtrace(subtaskDetailTrace); } //夿ä¸ä¸ï¼è¿ä¸ªéé¡¹ç»ææ¯ä¸æ¯è¿æç»§ç»é®ä¸å»çå¿ è¦ï¼ä¾å¦éé¡¹ç»ææ¯å«äººä¸æ³ç»§ç»åçé®é¢ï¼å°±è¦ç»ææ if (ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getIsEnd() == 1) { redisCache.deleteObject(serviceSubtask.getId() + "-" + serviceSubtask.getPhone()); redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "SCORE"); redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "PlayEventCallbackPlaystop"); redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "noVoice"); //å¨redisä¸ä¿åä¸ä¸ç»æè¯ï¼å¨è°ç¨æçµè¯çæ¹æ³æ¶å é¤ ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid()); redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "- jsy", serviceTask.getJsy(), 120, TimeUnit.MINUTES); phoneCallBackYQVO.setType("text"); phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + serviceTask.getJsy()); //è®°å½ç¶æ setFailPreachForm(serviceSubtask, "3", "çµè¯æ¨æå·²å®æ", "9"); return phoneCallBackYQVO; } flag = 1; //å°å½ååçææ¥ç¶æå é¤ï¼ç»ä¸ä¸é¢è®©ä½ redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "PlayEventCallbackPlaystop"); // //è·åä¸ä¸é¢ log.error("è·åä¸ä¸é¢çä¿¡æ¯ï¼{}", ivrTaskTemplateScriptVO); if (ivrTaskTemplateScriptVO.getBranchFlag().equals("1") || ivrTaskTemplateScriptVO.getBranchFlag().equals("0") && ivrTaskTemplateScriptVO.getNextScriptno() != null && ivrTaskTemplateScriptVO.getNextScriptno() != 0) { Long nextQuestion = null; if (ivrTaskTemplateScriptVO.getBranchFlag().equals("1")) { nextQuestion = ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getNextQuestion(); //æ´æ°åæ° double score = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE"); score = BigDecimal.valueOf(score).add(new BigDecimal(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getScore())).doubleValue(); redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "SCORE", score); } else { nextQuestion = ivrTaskTemplateScriptVO.getNextScriptno(); //æ´æ°åæ° Object obj = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE"); Double score = (obj == null ? new Double(0.00) : new Double(((Double) obj).doubleValue())); score = BigDecimal.valueOf(score).add(new BigDecimal(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getScore())).doubleValue(); redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "SCORE", score, 120, TimeUnit.MINUTES); } if (nextQuestion == null || nextQuestion == 0L) { //妿ä¸ä¸é¢ä¸ºç©ºï¼æè 为0ï¼åææº ServiceSubtask ss = new ServiceSubtask(); ss.setId(serviceSubtask.getId()); ss.setSendstate(6L); ss.setRemark("çµè¯æ¨æå·²å®æ"); serviceSubtaskMapper.updateServiceSubtask(ss); //è®°å½ç¶æ setFailPreachForm(serviceSubtask, "3", "çµè¯æ¨æå·²å®æ", "9"); redisCache.deleteObject(serviceSubtask.getId() + "-" + serviceSubtask.getPhone()); redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "SCORE"); redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "PlayEventCallbackPlaystop"); redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "noVoice"); //å¨redisä¸ä¿åä¸ä¸ç»æè¯ï¼å¨è°ç¨æçµè¯çæ¹æ³æ¶å é¤ ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid()); redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "- jsy", serviceTask.getJsy(), 120, TimeUnit.MINUTES); phoneCallBackYQVO.setType("text"); phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + serviceTask.getJsy()); //å°ç»æåè¿detail表 ServiceSubTaskDetailReq ssdReq = new ServiceSubTaskDetailReq(); List<ServiceSubtaskDetail> serviceSubtaskDetailList2 = new ArrayList<>(); serviceSubtaskDetailList.add(getServiceSubtaskDetail(phoneCallReqYQVO, ivrTaskTemplateScriptVO, serviceSubtask, ivrTaskTemplate)); serviceSubTaskDetailReq.setServiceSubtaskDetailList(serviceSubtaskDetailList2); ssdReq.setGuid(phoneCallReqYQVO.getGuid()); ssdReq.setOrgid(phoneCallReqYQVO.getOrgid()); saveQuestionAnswerPhone(ssdReq); return phoneCallBackYQVO; } for (IvrTaskTemplateScript script : ivrTaskTemplateScripts) { if (script.getSort() == nextQuestion.intValue()) { phoneCallBackYQVO.setType("text"); phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue()); String scriptContent = StringUtils.isNotEmpty(script.getIvrtext()) ? script.getIvrtext() : script.getScriptContent(); log.error("ä¸ä¸é¢é®é¢ï¼{}", scriptContent); log.error("ä¸ä¸é¢çå任塿¯ï¼{}", serviceSubtask); phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + getObject(serviceSubtask, scriptContent)); //å°è¯¥æ£è çRedisä¸çé¢ç®IDï¼è¿è¡ä¿®æ¹ redisCache.setCacheObject(phoneCallReqYQVO.getTaskid().trim() + "-" + phoneCallReqYQVO.getPhone().trim(), script.getId().toString(), 120, TimeUnit.MINUTES); //å 餿 ååº redisCache.deleteObject(phoneCallReqYQVO.getTaskid().trim() + "&&" + "mate" + "&&" + phoneCallReqYQVO.getUuid()); } } } else if (ivrTaskTemplateScriptVO.getNextScriptno() == null || ivrTaskTemplateScriptVO.getNextScriptno() == 0) { ServiceTask serviceTask1 = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid()); phoneCallBackYQVO.setType("text"); phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue()); //æ´æ°ä¸ä¸åæ° double score = 0.0; Object scoreObj = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE"); if (ObjectUtils.isNotEmpty(scoreObj)) score = (double) scoreObj; serviceSubtask.setScore(String.valueOf(score)); serviceSubtask.setFinishtime(new Date()); serviceSubtask.setSendstate(6L); serviceSubtask.setRemark("çµè¯æ¨æå·²å®æ"); serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); //è®°å½ç¶æ setFailPreachForm(serviceSubtask, "3", "çµè¯æ¨æå·²å®æ", "9"); //è®¾ç½®ç»æè¯ phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + serviceTask1.getJsy()); Long id = serviceSubtask.getId(); Map<String, String> map = delRedisValue(null, id.toString()); log.error("mapçå¼ä¸ºï¼{}", map); if (ObjectUtils.isNotEmpty(map)) redisCache.setCacheObject(map.get("cacheName"), map.get("val")); redisCache.deleteObject(serviceSubtask.getId() + "-" + serviceSubtask.getPhone()); redisCache.deleteObject(phoneCallReqYQVO.getTaskid().trim() + "&&" + "mate" + "&&" + phoneCallReqYQVO.getUuid()); redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "SCORE"); redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "PlayEventCallbackPlaystop"); //å¨redisä¸ä¿åä¸ä¸ç»æè¯ï¼å¨è°ç¨æçµè¯çæ¹æ³æ¶å é¤ ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid()); redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "- jsy", serviceTask.getJsy(), 120, TimeUnit.MINUTES); // return phoneCallBackYQVO; } } else { log.info("没æå¹é ä¸----------------------------"); //flag=0,è¯´ææ²¡ å¹é ä¸ï¼ä¹è¦ææ£è 说çè¯è®°å½ä¸æ¥ if (j == ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().size() - 1 && flag == 0) { ServiceSubTaskDetailReq serviceSubTaskDetailReq = new ServiceSubTaskDetailReq(); List<ServiceSubtaskDetail> serviceSubtaskDetailList = new ArrayList<>(); ServiceSubtaskDetail serviceSubtaskDetail = getServiceSubtaskDetail(phoneCallReqYQVO, ivrTaskTemplateScriptVO, serviceSubtask, ivrTaskTemplate); //ä¿®æ¹ä¸ä¸è¯é³è·¯å¾ï¼æ¹æå端å¯ä»¥è®¿é®çï¼åå°æ°æ®åºä¸ï¼ if (StringUtils.isNotEmpty(serviceSubtaskDetail.getQuestionvoice())) { String questionvoice = serviceSubtaskDetail.getQuestionvoice(); String[] split = questionvoice.split("\\\\"); if (split.length > 0) { String lastPart = split[split.length - 1]; serviceSubtaskDetail.setQuestionvoice(voicePathPrefix + lastPart); } } serviceSubtaskDetailList.add(serviceSubtaskDetail); //å¦ææ²¡æ å¹é ä¸ï¼è¿ä¸ªå¿ 须为null serviceSubtaskDetailList.get(0).setMatchedtext(""); serviceSubTaskDetailReq.setServiceSubtaskDetailList(serviceSubtaskDetailList); serviceSubTaskDetailReq.setGuid(phoneCallReqYQVO.getGuid()); serviceSubTaskDetailReq.setOrgid(phoneCallReqYQVO.getOrgid()); saveQuestionAnswerPhone(serviceSubTaskDetailReq); } continue; } continue; } } } //齿²¡æå¹é å° if (StringUtils.isEmpty(phoneCallBackYQVO.getValue())) { log.info("齿²¡æå¹é å°-------------------------"); @@ -2197,7 +2218,7 @@ Double score = null; Object scoreObj = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE"); if (ObjectUtils.isNotEmpty(scoreObj)) score = (Double) scoreObj; serviceSubtask.setScore(BigDecimal.valueOf(score)); serviceSubtask.setScore(String.valueOf(score)); serviceSubtask.setFinishtime(new Date()); serviceSubtask.setSendstate(6L); serviceSubtask.setRemark("çµè¯æ¨æå·²å®æ"); @@ -2231,7 +2252,7 @@ Double score = null; Object scoreObj = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE"); if (ObjectUtils.isNotEmpty(scoreObj)) score = (Double) scoreObj; score = BigDecimal.valueOf(score).add(script.getScore()).doubleValue(); score = BigDecimal.valueOf(score).add(new BigDecimal(script.getScore())).doubleValue(); redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "SCORE", score, 120, TimeUnit.MINUTES); } @@ -2286,7 +2307,7 @@ Double score = null; Object scoreObj = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE"); if (ObjectUtils.isNotEmpty(scoreObj)) score = (Double) scoreObj; score = BigDecimal.valueOf(score).add(ivrTaskTemplateScriptVO.getScore()).doubleValue(); score = BigDecimal.valueOf(score).add(new BigDecimal(ivrTaskTemplateScriptVO.getScore())).doubleValue(); redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "SCORE", score, 120, TimeUnit.MINUTES); } @@ -2302,7 +2323,7 @@ Double score = null; Object scoreObj = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE"); if (ObjectUtils.isNotEmpty(scoreObj)) score = (Double) scoreObj; serviceSubtask.setScore(BigDecimal.valueOf(score)); serviceSubtask.setScore(String.valueOf(score)); serviceSubtask.setFinishtime(new Date()); serviceSubtask.setRemark("çµè¯æ¨æå·²å®æ"); serviceSubtask.setSendstate(6L); @@ -2799,7 +2820,7 @@ log.info("getSfStatisticsçå ¥å为ï¼{}", serviceSubtaskCountReq); String drcode = "drcode"; //ç¼äºäººæ° æ ¹æ®ç»ç®¡å»çåç» if(serviceSubtaskCountReq.getOrgid().equals("47246116333112211A1001")){ if (serviceSubtaskCountReq.getOrgid().equals("47246116333112211A1001")) { drcode = "management_doctor_code"; } String groupKey = drcode; @@ -4901,9 +4922,10 @@ if (smsResult != null && smsResult.get("result") != null && smsResult.get("result").toString().equals("0")) { resultMap.put("code", "200"); resultMap.put("msg", "åéæå"); serviceSubtask.setRemark(StringUtils.isNotEmpty(serviceSubtask.getRemark()) ? serviceSubtask.getRemark() + ";çä¿¡åéæå" : "çä¿¡åéæå"); serviceSubtask.setRemark(StringUtils.isNotEmpty(serviceSubtask.getRemark()) ? serviceSubtask.getRemark() + ";çä¿¡åéæå(æå¨æäº¤)" : "çä¿¡åéæå(æå¨æäº¤)"); log.info("æ¯å¦åéæåï¼{}", serviceSubtask.getRemark()); updateServiceSubtask(serviceSubtask); serviceSubtask.setSendstate(3L); serviceSubtask.setCurrentPreachform("4"); } } return resultMap; @@ -4911,6 +4933,11 @@ @Override public List<ServiceSubtaskDetailRatioExport> statQuestionOption(List<Long> taskIds, Date startOutHospTime, Date endOutHospTime) { //å æ¸ çä¸ä¸é夿°æ® List<Long> repeatIds = serviceSubtaskDetailMapper.selectRepeatDetailIds(); if (!CollectionUtils.isEmpty(repeatIds)) { serviceSubtaskDetailMapper.deleteRepeatDetailByIds(repeatIds); } return serviceSubtaskMapper.statQuestionOption(taskIds, startOutHospTime, endOutHospTime); } @@ -5102,7 +5129,7 @@ String format = String.format("%03X", serviceOutPath.getId()); serviceOutPath.setRadix(format); serviceOutPath.setUpdateTime(new Date()); String url = ip + ":" + req_path + "/wt?p=" + format; String url = StringUtils.isNotEmpty(req_path) ? ip + ":" + req_path + "/wt?p=" + format : ip + "/wt?p=" + format; content = url; serviceOutPath.setUrl(url); iServiceOutPathService.updateServiceOutPath(serviceOutPath); @@ -5126,10 +5153,10 @@ // serviceSubtask.setNurseName(patMedInhosp1.getNurseName()); // serviceSubtask.setDrcode(patMedInhosp1.getDrcode()); // serviceSubtask.setDrname(patMedInhosp1.getDrname()); if(StringUtils.isNotEmpty(serviceTaskdept.getDeptType()) && serviceTaskdept.getDeptType().equals("1")){ if (StringUtils.isNotEmpty(serviceTaskdept.getDeptType()) && serviceTaskdept.getDeptType().equals("1")) { serviceSubtask.setDeptcode(serviceTaskdept.getDeptCode()); serviceSubtask.setDeptname(serviceTaskdept.getDeptName()); }else { } else { serviceSubtask.setLeavehospitaldistrictcode(serviceTaskdept.getDeptCode()); serviceSubtask.setLeavehospitaldistrictname(serviceTaskdept.getDeptName()); } @@ -5164,22 +5191,23 @@ /** * Ai å¹é é项 * * @param questionText * @param voiceText * @param options * @return */ public Integer matchOptionIndex(String url, String questionText, String voiceText, List<IvrTaskTemplateTargetoption> options, String uuid){ public Integer matchOptionIndex(String url, String questionText, String voiceText, List<IvrTaskTemplateTargetoption> options, String uuid) { JSONObject jsonObject = new JSONObject(); jsonObject.put("userQuestion",questionText); jsonObject.put("userAnswer",voiceText); jsonObject.put("userQuestion", questionText); jsonObject.put("userAnswer", voiceText); jsonObject.put("options", options); jsonObject.put("uuid", uuid); String jsonString = jsonObject.toJSONString(); String result = null; // String url = "http://localhost:8099/matchOptionIndex"; if(StringUtils.isNotEmpty(url)){ if (StringUtils.isNotEmpty(url)) { try { Map<String, String> headers = new HashMap<>(); headers.put("Content-Type", "application/json"); @@ -5189,16 +5217,14 @@ log.error("AIè¯å«å¤±è´¥", e); } } if(StringUtils.isNotEmpty(result) && result.matches("^-?\\d+$")){ if (StringUtils.isNotEmpty(result) && result.matches("^-?\\d+$")) { return Integer.parseInt(result); }else { } else { return -1; } } public PhoneCallBackYQVO AiMatch(String url, PhoneCallReqYQVO phoneCallReqYQVO, PhoneCallBackYQVO phoneCallBackYQVO, IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO, ServiceSubtask serviceSubtask, IvrTaskTemplate ivrTaskTemplate, List<IvrTaskTemplateScript> ivrTaskTemplateScripts, String scriptId, Integer flag, String uuid){ public PhoneCallBackYQVO AiMatch(String url, PhoneCallReqYQVO phoneCallReqYQVO, PhoneCallBackYQVO phoneCallBackYQVO, IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO, ServiceSubtask serviceSubtask, IvrTaskTemplate ivrTaskTemplate, List<IvrTaskTemplateScript> ivrTaskTemplateScripts, String scriptId, Integer flag, String uuid) { PhoneCallBackYQVO back = null; List<IvrTaskTemplateTargetoption> options = ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList(); String voiceText = phoneCallReqYQVO.getAsrtext(); @@ -5206,7 +5232,7 @@ Integer matched = -1; matched = matchOptionIndex(url, questionText, voiceText, options, uuid); //说æå¹é æ£ç¡®äº if(matched != null && matched >= 0){ if (matched != null && matched >= 0) { IvrTaskTemplateTargetoption chosenOption = options.get(matched); //è¿éåºè¯¥å å¤æç±»åï¼å»åä¿®æ¹ï¼è®¾ç½®IsUserOperationæ¯åéé¢çæ¹æ³ log.info("å¹é æ£ç¡®äºå--------------"); @@ -5311,14 +5337,14 @@ nextQuestion = chosenOption.getNextQuestion(); //æ´æ°åæ° double score = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE"); score = BigDecimal.valueOf(score).add(chosenOption.getScore()).doubleValue(); score = BigDecimal.valueOf(score).add(new BigDecimal(chosenOption.getScore())).doubleValue(); redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "SCORE", score); } else { nextQuestion = ivrTaskTemplateScriptVO.getNextScriptno(); //æ´æ°åæ° Object obj = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE"); Double score = (obj == null ? new Double(0.00) : new Double(((Double) obj).doubleValue())); score = BigDecimal.valueOf(score).add(chosenOption.getScore()).doubleValue(); score = BigDecimal.valueOf(score).add(new BigDecimal(String.valueOf(chosenOption.getScore()))).doubleValue(); redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "SCORE", score, 120, TimeUnit.MINUTES); } if (nextQuestion == null || nextQuestion == 0L) { @@ -5373,7 +5399,7 @@ double score = 0.0; Object scoreObj = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE"); if (ObjectUtils.isNotEmpty(scoreObj)) score = (double) scoreObj; serviceSubtask.setScore(BigDecimal.valueOf(score)); serviceSubtask.setScore(String.valueOf(score)); serviceSubtask.setFinishtime(new Date()); serviceSubtask.setSendstate(6L); serviceSubtask.setRemark("çµè¯æ¨æå·²å®æ"); @@ -5385,8 +5411,7 @@ Long id = serviceSubtask.getId(); Map<String, String> map = delRedisValue(null, id.toString()); log.error("mapçå¼ä¸ºï¼{}", map); if (ObjectUtils.isNotEmpty(map)) redisCache.setCacheObject(map.get("cacheName"), map.get("val")); if (ObjectUtils.isNotEmpty(map)) redisCache.setCacheObject(map.get("cacheName"), map.get("val")); redisCache.deleteObject(serviceSubtask.getId() + "-" + serviceSubtask.getPhone()); redisCache.deleteObject(phoneCallReqYQVO.getTaskid().trim() + "&&" + "mate" + "&&" + phoneCallReqYQVO.getUuid()); redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "SCORE"); @@ -5441,7 +5466,7 @@ } @Test public void TestMatch(){ public void TestMatch() { String questionText = "æ¨å¥½,è¯·é®æ¨æ¯æ£è æ¬äººè¿æ¯å®¶å±ï¼\n"; String voiceText = "æèªå·±"; String matchedText = ""; @@ -5457,9 +5482,9 @@ options.add(ivrTaskTemplateTargetoption3); //1-AIè¯å« String url = configService.selectConfigByKey("sys.voice.match.ai.url"); Integer matched = matchOptionIndex(url, questionText,voiceText,options,"1"); if(ObjectUtils.isNotEmpty(matched)){ if(matched >= 0){ Integer matched = matchOptionIndex(url, questionText, voiceText, options, "1"); if (ObjectUtils.isNotEmpty(matched)) { if (matched >= 0) { matchedText = options.get(matched).getTargetvalue(); } } smartor/src/main/java/com/smartor/service/impl/ServiceTaskmedicalServiceImpl.java
@@ -1,7 +1,9 @@ package com.smartor.service.impl; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.StringUtils; import com.smartor.domain.ServiceTaskmedical; import com.smartor.domain.VO.ServiceTaskmedicalVO; import com.smartor.mapper.ServiceTaskmedicalMapper; import com.smartor.service.IServiceTaskmedicalService; import org.springframework.beans.factory.annotation.Autowired; @@ -16,8 +18,7 @@ * @date 2026-07-29 */ @Service public class ServiceTaskmedicalServiceImpl implements IServiceTaskmedicalService { public class ServiceTaskmedicalServiceImpl implements IServiceTaskmedicalService { @Autowired private ServiceTaskmedicalMapper serviceTaskmedicalMapper; @@ -28,8 +29,7 @@ * @return ä»»å¡è¯åå ³è */ @Override public ServiceTaskmedical selectServiceTaskmedicalById(Long id) { public ServiceTaskmedical selectServiceTaskmedicalById(Long id) { return serviceTaskmedicalMapper.selectServiceTaskmedicalById(id); } @@ -40,8 +40,7 @@ * @return ä»»å¡è¯åå ³è */ @Override public List<ServiceTaskmedical> selectServiceTaskmedicalList(ServiceTaskmedical serviceTaskmedical) { public List<ServiceTaskmedical> selectServiceTaskmedicalList(ServiceTaskmedical serviceTaskmedical) { return serviceTaskmedicalMapper.selectServiceTaskmedicalList(serviceTaskmedical); } @@ -52,8 +51,7 @@ * @return ç»æ */ @Override public int insertServiceTaskmedical(ServiceTaskmedical serviceTaskmedical) { public int insertServiceTaskmedical(ServiceTaskmedical serviceTaskmedical) { serviceTaskmedical.setCreateTime(DateUtils.getNowDate()); return serviceTaskmedicalMapper.insertServiceTaskmedical(serviceTaskmedical); } @@ -65,8 +63,7 @@ * @return ç»æ */ @Override public int updateServiceTaskmedical(ServiceTaskmedical serviceTaskmedical) { public int updateServiceTaskmedical(ServiceTaskmedical serviceTaskmedical) { serviceTaskmedical.setUpdateTime(DateUtils.getNowDate()); return serviceTaskmedicalMapper.updateServiceTaskmedical(serviceTaskmedical); } @@ -78,8 +75,7 @@ * @return ç»æ */ @Override public int deleteServiceTaskmedicalByIds(Long[] ids) { public int deleteServiceTaskmedicalByIds(Long[] ids) { return serviceTaskmedicalMapper.deleteServiceTaskmedicalByIds(ids); } @@ -90,8 +86,21 @@ * @return ç»æ */ @Override public int deleteServiceTaskmedicalById(Long id) { public int deleteServiceTaskmedicalById(Long id) { return serviceTaskmedicalMapper.deleteServiceTaskmedicalById(id); } /** * å é¤ä»»å¡è¯åå ³èä¿¡æ¯ * * @param serviceTaskmedicalVO * @return ç»æ */ @Override public int deleteServiceTaskmedical(ServiceTaskmedicalVO serviceTaskmedicalVO) { if (StringUtils.isNotEmpty(serviceTaskmedicalVO.getMedicalCode()) && serviceTaskmedicalVO.getTaskId() != null) { return serviceTaskmedicalMapper.deleteServiceTaskmedical(serviceTaskmedicalVO); } return 0; } } smartor/src/main/resources/mapper/smartor/PatArchiveMapper.xml
@@ -1204,11 +1204,6 @@ WHERE 1=1 AND d.del_flag != 1 AND d.orgid = #{orgid} <if test="name != null and name != ''">AND a.name like concat('%', #{name}, '%')</if> <if test="idcardno != null and idcardno != ''">AND a.idcardno = #{idcardno}</if> <if test="pid != null and pid != ''">AND a.id = #{id}</if> <if test="telcode != null and telcode != ''">AND a.telcode = #{telcode}</if> <if test="notrequiredFlag != null and notrequiredFlag != ''">AND a.notrequired_flag = #{notrequiredFlag}</if> <if test="hospitalname != null and hospitalname != ''">AND d.hospitalname = #{hospitalname}</if> <if test="hospitaldistrictname != null and hospitaldistrictname != ''">AND d.hospitaldistrictname LIKE concat('%',#{hospitaldistrictname}, '%')</if> <if test="leaveicd10code != null and leaveicd10code != ''">AND d.leaveicd10code LIKE concat('%',#{leaveicd10code}, '%')</if> smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml
@@ -80,10 +80,16 @@ <result property="encounterSourceId" column="encounter_source_id"/> <result property="importanceFlagCode" column="importance_flag_code"/> <result property="emergencyLevelCode" column="emergency_level_code"/> <result property="medicalCode" column="medical_code"/> <result property="medicalName" column="medical_name"/> <result property="medicalCompany" column="medical_company"/> </resultMap> <sql id="selectPatMedInhospVo"> select inhospid, medical_code, medical_name, medical_company, encounter_source_id, importance_flag_code, emergency_level_code, @@ -158,7 +164,7 @@ </sql> <select id="selectPatMedInhospList" parameterType="com.smartor.domain.PatMedInhosp" resultMap="PatMedInhospResult"> select CONCAT( a.age, a.age_unit ) AS age, select a.age AS age, a.telcode as telcode, a.sex, b.inhospid, @@ -228,6 +234,9 @@ b.encounter_source_id, b.importance_flag_code, b.emergency_level_code, b.medical_code, b.medical_name, b.medical_company, a.idcardno FROM pat_med_inhosp b @@ -257,6 +266,7 @@ concat('%', #{hospitaldistrictname}, '%') </if> <if test="endtime != null ">and b.endtime = #{endtime}</if> <if test="bedNo != null ">and b.bed_no = #{bedNo}</if> <if test="inhospMydFlag != null ">and b.inhosp_myd_flag = #{inhospMydFlag}</if> <if test="managementDoctor != null ">and b.management_doctor = #{managementDoctor}</if> <if test="managementDoctorCode != null ">and b.management_doctor_code = #{managementDoctorCode}</if> @@ -463,6 +473,9 @@ select CONCAT( a.age, a.age_unit ) AS age, a.telcode as telcode, b.inhospid, b.medical_code, b.medical_name, b.medical_company, b.encounter_source_id, b.importance_flag_code, b.emergency_level_code, @@ -593,6 +606,13 @@ #{leaveldeptcode} </foreach> </if> <if test="medicalCode != null and medicalCode != ''">and b.medical_code like concat('%'#{medicalCode}, '%') </if> <if test="medicalName != null and medicalName != ''">and b.medical_name like concat('%'#{medicalName}, '%') </if> <if test="medicalCompany != null and medicalCompany != ''">and b.medical_company like concat('%'#{medicalCompany}, '%') </if> order by b.inhospid desc </select> @@ -684,6 +704,11 @@ <if test="importanceFlagCode != null ">and importance_flag_code = #{importanceFlagCode}</if> <if test="emergencyLevelCode != null ">and emergency_level_code = #{emergencyLevelCode}</if> <if test="encounterSourceId != null ">and encounter_source_id = #{encounterSourceId}</if> <if test="medicalCode != null and medicalCode != ''">and medical_code like concat('%'#{medicalCode}, '%')</if> <if test="medicalName != null and medicalName != ''">and medical_name like concat('%'#{medicalName}, '%')</if> <if test="medicalCompany != null and medicalCompany != ''">and medical_company like concat('%'#{medicalCompany}, '%') </if> </select> @@ -760,6 +785,9 @@ <if test="importanceFlagCode != null ">importance_flag_code,</if> <if test="emergencyLevelCode != null ">emergency_level_code,</if> <if test="encounterSourceId != null ">encounter_source_id,</if> <if test="medicalCode != null and medicalCode != ''">medical_code,</if> <if test="medicalName != null and medicalName != ''">medical_name,</if> <if test="medicalCompany != null and medicalCompany != ''">medical_company,</if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="serialnum != null">#{serialnum},</if> @@ -830,6 +858,9 @@ <if test="importanceFlagCode != null ">#{importanceFlagCode},</if> <if test="emergencyLevelCode != null ">#{emergencyLevelCode},</if> <if test="encounterSourceId != null ">#{encounterSourceId},</if> <if test="medicalCode != null and medicalCode != ''">#{medicalCode},</if> <if test="medicalName != null and medicalName != ''">#{medicalName},</if> <if test="medicalCompany != null and medicalCompany != ''">#{medicalCompany},</if> </trim> </insert> @@ -848,7 +879,8 @@ nurse_id, nurse_name, out_way_id, out_way_name, guid, operator, operator_id, inhospno, remark, fuflag, fudate, fuperiod, futypecode, futypedesc, fuadvice, fuspecialadvice, management_doctor, management_doctor_doctor,campusid, inhosp_myd_flag, importance_flag_code, emergency_level_code, encounter_source_id management_doctor_doctor,campusid, inhosp_myd_flag, importance_flag_code, emergency_level_code, encounter_source_id, medical_code, medical_name, medical_company ) values <foreach collection="list" item="item" separator=","> @@ -871,7 +903,8 @@ #{item.operator}, #{item.operatorId}, #{item.inhospno}, #{item.remark}, #{item.fuflag}, #{item.fudate}, #{item.fuperiod}, #{item.futypecode}, #{item.futypedesc}, #{item.fuadvice}, #{item.fuspecialadvice}, #{item.managementDoctor}, #{item.managementDoctorCode}, #{item.campusid}, #{item.inhospMydFlag}, #{item.importanceFlagCode}, #{item.emergencyLevelCode}, #{item.encounterSourceId} #{item.importanceFlagCode}, #{item.emergencyLevelCode}, #{item.encounterSourceId}, #{item.medicalCode}, #{item.medicalName}, #{item.medicalCompany} ) </foreach> </insert> @@ -949,6 +982,9 @@ <if test="importanceFlagCode != null ">importance_flag_code = #{importanceFlagCode},</if> <if test="emergencyLevelCode != null ">emergency_level_code = #{emergencyLevelCode},</if> <if test="encounterSourceId != null ">encounter_source_id = #{encounterSourceId},</if> <if test="medicalCode != null and medicalCode != ''">medical_code = #{medicalCode},</if> <if test="medicalName != null and medicalName != ''">medical_name = #{medicalName},</if> <if test="medicalCompany != null and medicalCompany != ''">medical_company = #{medicalCompany},</if> </trim> where inhospid = #{inhospid} </update> smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailMapper.xml
@@ -546,4 +546,34 @@ ivr_liba_target.targetname, service_subtask_detail.matchedtext </select> <select id="selectRepeatDetailIds" resultType="Long"> SELECT d1.id FROM service_subtask_detail d1 INNER JOIN ( SELECT sub_id, questiontext, MAX(create_time) AS max_create_time, MAX(id) AS keep_id FROM service_subtask_detail WHERE del_flag = 0 GROUP BY sub_id, questiontext HAVING COUNT(*) > 1 ) d2 ON d1.sub_id = d2.sub_id AND d1.questiontext = d2.questiontext AND ( d1.create_time < d2.max_create_time OR (d1.create_time = d2.max_create_time AND d1.id < d2.keep_id) ) WHERE d1.del_flag = 0 </select> <update id="deleteRepeatDetailByIds"> UPDATE service_subtask_detail SET del_flag = 1 WHERE del_flag = 0 AND id IN <foreach collection="ids" item="id" open="(" separator="," close=")"> #{id} </foreach> </update> </mapper> smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -1367,16 +1367,17 @@ <if test="continueTimeNext != null ">continue_time_next = #{continueTimeNext,jdbcType=TIMESTAMP},</if> <if test="continueContent != null ">continue_content = #{continueContent},</if> </trim> where <if test="patid != null "> patid = #{patid} </if> <if test="taskid != null "> and taskid = #{taskid} </if> <if test="id != null "> and id = #{id} </if> <where> <if test="patid != null "> patid = #{patid} </if> <if test="taskid != null "> and taskid = #{taskid} </if> <if test="id != null "> and id = #{id} </if> </where> </update> <update id="updateServiceSubtaskByTaskGuid" parameterType="com.smartor.domain.ServiceSubtask"> @@ -3057,6 +3058,7 @@ #{taskId} </foreach> and s.sendstate=6 and d.del_flag=0 GROUP BY t.taskid, d.questiontext @@ -3066,6 +3068,7 @@ #{taskId} </foreach> AND s.sendstate = 6 and d.del_flag=0 <if test="startOutHospTime != null"> AND date_format(s.endtime,'%y%m%d') >= date_format(#{startOutHospTime},'%y%m%d') </if> smartor/src/main/resources/mapper/smartor/ServiceTaskmedicalMapper.xml
@@ -322,5 +322,18 @@ </foreach> </update> <update id="deleteServiceTaskmedical" parameterType="com.smartor.domain.VO.ServiceTaskmedicalVO"> update service_taskmedical <trim prefix="SET" suffixOverrides=","> del_flag =1 </trim> <where> <if test="taskId != null">task_id = #{taskId} </if> <if test="medicalCode != null">and medical_code = #{medicalCode} </if> </where> </update> </mapper>