From a11465387cb67853ef9252a679c43ef2ff75d718 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期五, 24 四月 2026 19:12:52 +0800
Subject: [PATCH] 提交
---
smartor/src/main/java/com/smartor/domain/ServiceSubtask.java | 2
smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java | 99 +++++++++----------
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java | 15 ++
smartor/src/main/java/com/smartor/domain/entity/ServiceSubtaskEntity.java | 1
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java | 37 +++++++
smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java | 9 +
smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java | 3
smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml | 46 +++++++++
smartor/src/main/java/com/smartor/domain/VO/HeLibraryCountVO.java | 40 ++++++++
9 files changed, 195 insertions(+), 57 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
index 1c889c2..7c459cc 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
@@ -23,6 +23,7 @@
import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.system.service.ISysUserDeptService;
import com.smartor.domain.*;
+import com.smartor.domain.VO.HeLibraryCountVO;
import com.smartor.domain.VO.ServiceSubtaskCotinueCountVO;
import com.smartor.domain.VO.ServiceSubtaskVO;
import com.smartor.domain.entity.ServiceSubtaskEntity;
@@ -242,13 +243,12 @@
//@PreAuthorize("@ss.hasPermi('system:taskcall:list')")
@AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
@PostMapping("/patItemByCondition")
- public TableDataInfo patItemByCondition(@RequestBody ServiceSubtaskVO serviceSubtaskVO) {
+ public Map<String, Object> patItemByCondition(@RequestBody ServiceSubtaskVO serviceSubtaskVO) {
List<ServiceSubtask> serviceSubtaskList = null;
ServiceSubtaskEntity serviceSubtaskEntity = DtoConversionUtils.sourceToTarget(serviceSubtaskVO, ServiceSubtaskEntity.class);
serviceSubtaskEntity.setContinueContent(ObjectUtils.isNotEmpty(serviceSubtaskVO.getContinueContent()) ? serviceSubtaskVO.getContinueContent().toString() : null);
if (serviceSubtaskEntity != null) {
- PageUtils.startPageByPost(serviceSubtaskEntity.getPageNum(), serviceSubtaskEntity.getPageSize());
-
+ serviceSubtaskEntity.setPageNum(PageUtils.getOffset(serviceSubtaskEntity.getPageNum(), serviceSubtaskEntity.getPageSize()));
serviceSubtaskList = serviceSubtaskService.patItem2(serviceSubtaskEntity);
}
for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
@@ -273,7 +273,7 @@
serviceSubtaskService.patItem2(serviceSubtaskEntity);
}
});
- return getDataTable2(total, list);
+ return getDataTable3(total, list);
}
/**
@@ -730,4 +730,11 @@
return map;
}
+ @ApiOperation("鑾峰彇褰撳墠鐢ㄦ埛瀹f暀鏁伴噺缁熻")
+ @PostMapping("/gethelibraryCount")
+ public Map<String, Object> getHeLibraryCount(@RequestBody HeLibraryCountVO heLibraryCountVO) {
+ log.info("鑾峰彇褰撳墠鐢ㄦ埛瀹f暀鏁伴噺缁熻鐨勫叆鍙備负锛歿}", heLibraryCountVO);
+ return serviceSubtaskService.getHeLibraryCount(heLibraryCountVO);
+ }
+
}
diff --git a/smartor/src/main/java/com/smartor/domain/ServiceSubtask.java b/smartor/src/main/java/com/smartor/domain/ServiceSubtask.java
index 5b127de..d9f6e4f 100644
--- a/smartor/src/main/java/com/smartor/domain/ServiceSubtask.java
+++ b/smartor/src/main/java/com/smartor/domain/ServiceSubtask.java
@@ -446,7 +446,7 @@
* 灏辫瘖绫诲瀷锛�1闂ㄨ瘖 2鍑洪櫌锛�
*/
@Excel(name = " 灏辫瘖绫诲瀷锛�1闂ㄨ瘖 2鍑洪櫌锛�")
- @ApiModelProperty(value = "灏辫瘖绫诲瀷锛�1闂ㄨ瘖 2鍑洪櫌 3.涓撶梾 4.澶栭儴瀵煎叆 5鎬ヨ瘖銆�5浣忛櫌銆�7浣撴锛�")
+ @ApiModelProperty(value = "灏辫瘖绫诲瀷锛�1闂ㄨ瘖 2鍑洪櫌 3.涓撶梾 4.澶栭儴瀵煎叆 5鎬ヨ瘖銆�6浣忛櫌銆�7浣撴锛�")
private String hospType;
diff --git a/smartor/src/main/java/com/smartor/domain/VO/HeLibraryCountVO.java b/smartor/src/main/java/com/smartor/domain/VO/HeLibraryCountVO.java
new file mode 100644
index 0000000..e6158d7
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/VO/HeLibraryCountVO.java
@@ -0,0 +1,40 @@
+package com.smartor.domain.VO;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+@ApiModel("瀹f暀缁熻鏌ヨ璇锋眰瀵硅薄")
+public class HeLibraryCountVO {
+
+ @ApiModelProperty(value = "鐥呭尯Code闆嗗悎")
+ private List<String> hospitaldistrictcodes;
+
+ @ApiModelProperty(value = "绉戝Code闆嗗悎")
+ private List<String> deptcodes;
+
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @ApiModelProperty(value = "鍑洪櫌鏃堕棿")
+ private Date endtime;
+
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @ApiModelProperty(value = "鍏ラ櫌鏃堕棿")
+ private Date starttime;
+
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @ApiModelProperty(value = "瀹f暀鍙戦�佹椂闂�")
+ private Date visittime;
+
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @ApiModelProperty(value = "瀹f暀瀹屾垚鏃堕棿")
+ private Date finishtime;
+
+ @ApiModelProperty(value = "灏辫瘖绫诲瀷锛�1闂ㄨ瘖 2鍑洪櫌 3.涓撶梾 4.澶栭儴瀵煎叆 5鎬ヨ瘖銆�6浣忛櫌銆�7浣撴锛�")
+ private String hospType;
+
+}
diff --git a/smartor/src/main/java/com/smartor/domain/entity/ServiceSubtaskEntity.java b/smartor/src/main/java/com/smartor/domain/entity/ServiceSubtaskEntity.java
index 2a85c3d..e237473 100644
--- a/smartor/src/main/java/com/smartor/domain/entity/ServiceSubtaskEntity.java
+++ b/smartor/src/main/java/com/smartor/domain/entity/ServiceSubtaskEntity.java
@@ -105,6 +105,7 @@
*/
@ApiModelProperty(value = "鍑犲ぉ鍙婃椂鐜�")
private Integer rateDay;
+
/**
* 鎬у埆
*/
diff --git a/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
index 3bb4019..7fb20b5 100644
--- a/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
+++ b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
@@ -2,6 +2,7 @@
import com.smartor.domain.*;
import com.smartor.domain.VO.PatSatisfactionReqVO;
+import com.smartor.domain.VO.HeLibraryCountVO;
import com.smartor.domain.VO.ServiceSubtaskCotinueCountVO;
import com.smartor.domain.entity.ServiceSubtaskEntity;
import com.smartor.domain.entity.ServiceSubtaskSatisfactionEntity;
@@ -211,4 +212,12 @@
*/
List<Map<String, Object>> getContinueNurseCountByDept(ServiceSubtaskCotinueCountVO vo);
+ /**
+ * 瀹f暀缁熻锛氭寜鐥呭尯鎴栫瀹ゅ垎缁勭粺璁″彂閫佹垚鍔熺巼鍜屽凡璇荤巼
+ *
+ * @param heLibraryCountVO 鏌ヨ鏉′欢
+ * @return 姣忕粍鐨勭粺璁$粨鏋滐紙groupName, sendSuccessCount, totalCount, readCount锛�
+ */
+ List<Map<String, Object>> getHeLibraryCount(HeLibraryCountVO heLibraryCountVO);
+
}
diff --git a/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java b/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
index c92c0a9..11554e9 100644
--- a/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
+++ b/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
@@ -3,6 +3,7 @@
import com.ruoyi.common.core.domain.AjaxResult;
import com.smartor.domain.*;
import com.smartor.domain.ServiceSubtask;
+import com.smartor.domain.VO.HeLibraryCountVO;
import com.smartor.domain.VO.ServiceSubtaskCotinueCountVO;
import com.smartor.domain.entity.ServiceSubtaskEntity;
import org.springframework.web.bind.annotation.RequestBody;
@@ -169,4 +170,6 @@
* @return
*/
public void setFailSubTaskDefalutVal(Long failDay);
+
+ public Map<String, Object> getHeLibraryCount(@RequestBody HeLibraryCountVO heLibraryCountVO);
}
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java
index e400628..6df1fae 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java
@@ -264,70 +264,67 @@
// 澶勭悊鐢ㄦ埛涓庨儴闂ㄧ殑鍏崇郴
List businessDepts = (List<?>) dataItem.get("businessDepts");
- if (CollectionUtils.isEmpty(businessDepts)) {
- continue;
- }
+ if (CollectionUtils.isNotEmpty(businessDepts)) {
+ List<List<String>> deptInfoList = new ArrayList<>();
+ List<List<String>> hospInfoList = new ArrayList<>();
+ log.info("------businessDepts鏄惁鏈夊�硷細{}", businessDepts.size());
+ for (Object businessDept : businessDepts) {
+ if (businessDept instanceof Map) {
+ Map<String, Object> businessDeptMap = (Map<String, Object>) businessDept;
+ log.info("------businessDeptMap鏄惁鏈夊�硷細{}", businessDeptMap);
+ String hisDeptId = getStringValue(businessDeptMap, "deptId");
+ log.info("------hisDeptId鏄惁鏈夊�硷細{}, reqVO.getOrgId()鐨勫�间负:{}", hisDeptId, reqVO.getCampusId());
+ //鍦ㄨ繖閲岋紝hisDeptId灏辨槸deptCode
+ SysDept sysDept = sysDeptMapper.selectDeptByCode(hisDeptId, reqVO.getOrgId());
+ log.info("------hisDeptId鏄惁鏈夊�硷細{}, reqVO.getCampusId()鐨勫�间负:{}", hisDeptId, reqVO.getCampusId());
+ if (Objects.isNull(sysDept)) continue;
+ SysUserDept sysUserDept = new SysUserDept();
+ sysUserDept.setUserId(sysUser.getUserId());
+ sysUserDept.setDeptType(sysDept.getDeptType());
+ sysUserDept.setDeptId(sysDept.getDeptId());
+ sysUserDept.setDeptCode(sysDept.getDeptCode());
+ sysUserDept.setDeptName(sysDept.getDeptName());
+ sysUserDept.setOrgid(sysDept.getOrgid());
+ sysUserDept.setCreateTime(new Date());
+ sysUserDept.setDelFlag(0L);
- List<List<String>> deptInfoList = new ArrayList<>();
- List<List<String>> hospInfoList = new ArrayList<>();
- log.info("------businessDepts鏄惁鏈夊�硷細{}", businessDepts.size());
- for (Object businessDept : businessDepts) {
- if (businessDept instanceof Map) {
- Map<String, Object> businessDeptMap = (Map<String, Object>) businessDept;
- log.info("------businessDeptMap鏄惁鏈夊�硷細{}", businessDeptMap);
-// Long hisDeptId = (Long) personnelDeptMap.get("deptId");
- String hisDeptId = getStringValue(businessDeptMap, "deptId");
- log.info("------hisDeptId鏄惁鏈夊�硷細{}, reqVO.getOrgId()鐨勫�间负:{}", hisDeptId, reqVO.getCampusId());
- //鍦ㄨ繖閲岋紝hisDeptId灏辨槸deptCode
- SysDept sysDept = sysDeptMapper.selectDeptByCode(hisDeptId, reqVO.getOrgId());
- log.info("------hisDeptId鏄惁鏈夊�硷細{}, reqVO.getCampusId()鐨勫�间负:{}", hisDeptId, reqVO.getCampusId());
- if (Objects.isNull(sysDept)) continue;
- SysUserDept sysUserDept = new SysUserDept();
- sysUserDept.setUserId(sysUser.getUserId());
- sysUserDept.setDeptType(sysDept.getDeptType());
- sysUserDept.setDeptId(sysDept.getDeptId());
- sysUserDept.setDeptCode(sysDept.getDeptCode());
- sysUserDept.setDeptName(sysDept.getDeptName());
- sysUserDept.setOrgid(sysDept.getOrgid());
- sysUserDept.setCreateTime(new Date());
- sysUserDept.setDelFlag(0L);
-
- //鍒ゆ柇涓�涓嬬敤鎴�-閮ㄩ棬鍏崇郴鏄笉鏄凡缁忓瓨鍦ㄤ簡锛堟棤璁烘柊鐢ㄦ埛杩樻槸鑰佺敤鎴烽兘闇�瑕佸幓閲嶏級
- if (ObjectUtils.isNotEmpty(sysUser.getUserId()) && ObjectUtils.isNotEmpty(sysDept)) {
- SysUserDept sud = new SysUserDept();
- sud.setUserId(sysUser.getUserId());
- sud.setDeptId(sysDept.getDeptId());
- sud.setOrgid(sysDept.getOrgid());
- List<SysUserDept> sysUserDepts = sysUserDeptMapper.selectSysUserDeptList(sud);
- if (CollectionUtils.isNotEmpty(sysUserDepts)) {
- sysUserDept.setId(sysUserDepts.get(0).getId());
- sysUserDeptMapper.updateSysUserDept(sysUserDept);
- } else {
- sysUserDeptMapper.insertSysUserDept(sysUserDept);
+ //鍒ゆ柇涓�涓嬬敤鎴�-閮ㄩ棬鍏崇郴鏄笉鏄凡缁忓瓨鍦ㄤ簡锛堟棤璁烘柊鐢ㄦ埛杩樻槸鑰佺敤鎴烽兘闇�瑕佸幓閲嶏級
+ if (ObjectUtils.isNotEmpty(sysUser.getUserId()) && ObjectUtils.isNotEmpty(sysDept)) {
+ SysUserDept sud = new SysUserDept();
+ sud.setUserId(sysUser.getUserId());
+ sud.setDeptId(sysDept.getDeptId());
+ sud.setOrgid(sysDept.getOrgid());
+ List<SysUserDept> sysUserDepts = sysUserDeptMapper.selectSysUserDeptList(sud);
+ if (CollectionUtils.isNotEmpty(sysUserDepts)) {
+ sysUserDept.setId(sysUserDepts.get(0).getId());
+ sysUserDeptMapper.updateSysUserDept(sysUserDept);
+ } else {
+ sysUserDeptMapper.insertSysUserDept(sysUserDept);
+ }
+ }
+ if (StringUtils.isNotEmpty(sysDept.getDeptType()) && sysDept.getDeptType().equals("1")) {
+ hospInfoList.add(Arrays.asList(sysDept.getDeptCode()));
+ } else if (StringUtils.isNotEmpty(sysDept.getDeptType()) && sysDept.getDeptType().equals("2")) {
+ deptInfoList.add(Arrays.asList(sysDept.getDeptCode()));
}
}
- if (StringUtils.isNotEmpty(sysDept.getDeptType()) && sysDept.getDeptType().equals("1")) {
- hospInfoList.add(Arrays.asList(sysDept.getDeptCode()));
- } else if (StringUtils.isNotEmpty(sysDept.getDeptType()) && sysDept.getDeptType().equals("2")) {
- deptInfoList.add(Arrays.asList(sysDept.getDeptCode()));
- }
}
+ //灏嗛儴闂ㄦ垜鐥呭尯鏀惧埌鎸囧畾瀛楁涓�
+ Gson gson = new Gson();
+ sysUser.setHospInfo(gson.toJson(hospInfoList));
+ sysUser.setDeptInfo(gson.toJson(deptInfoList));
+ sysUser2Mapper.updateUser(sysUser);
}
- //灏嗛儴闂ㄦ垜鐥呭尯鏀惧埌鎸囧畾瀛楁涓�
- Gson gson = new Gson();
- sysUser.setHospInfo(gson.toJson(hospInfoList));
- sysUser.setDeptInfo(gson.toJson(deptInfoList));
- sysUser2Mapper.updateUser(sysUser);
//璁剧疆涓�涓粯璁よ鑹诧紙鍖荤敓瑙掕壊锛�
List<SysUserRole> userRoleList = new ArrayList();
SysUserRole sur = new SysUserRole();
sur.setUserId(sysUser.getUserId());
- sur.setRoleId(3L);
+ sur.setRoleId(4L);
sur.setOrgid(sysUser.getOrgid());
//鍏堟煡璇竴涓嬶紝鏄惁瀛樺湪
- SysUserRole sysUserRole = sysUserRoleMapper.selectUserRoleByRoleIdAndUserId(3L, sysUser.getUserId());
+ SysUserRole sysUserRole = sysUserRoleMapper.selectUserRoleByRoleIdAndUserId(4L, sysUser.getUserId());
if (ObjectUtils.isNotEmpty(sysUserRole)) continue;
userRoleList.add(sur);
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
index 53b97f1..9b04a47 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -16,6 +16,7 @@
import com.smartor.config.PhoneUtils;
import com.smartor.domain.DTO.ServiceSubtaskDetailDTO;
import com.smartor.domain.*;
+import com.smartor.domain.VO.HeLibraryCountVO;
import com.smartor.domain.VO.ServiceSubtaskCotinueCountVO;
import com.smartor.domain.entity.ServiceSubtaskEntity;
import com.smartor.mapper.*;
@@ -31,6 +32,7 @@
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.RequestBody;
import java.math.BigDecimal;
import java.math.RoundingMode;
@@ -3589,7 +3591,8 @@
map.put("content", sendMagParam.getContent());
String result = HttpUtil.postJsonRequest(xhsmsPath, new Gson().toJson(map));
redisCache.setCacheObject(subTaskId + "recordAccept-hungup", "1", 10, TimeUnit.MINUTES);
- if (StringUtils.isNotEmpty(serviceSubtask.getRemark())) serviceSubtask.setRemark("鐢佃瘽鍙戦�佹嫆鎺�,鐭俊琛ュ伩鍙戦�佹垚鍔�");
+ if (StringUtils.isNotEmpty(serviceSubtask.getRemark()))
+ serviceSubtask.setRemark("鐢佃瘽鍙戦�佹嫆鎺�,鐭俊琛ュ伩鍙戦�佹垚鍔�");
else serviceSubtask.setRemark("鐭俊琛ュ伩鍙戦�佹垚鍔�");
serviceSubtask.setSendstate(3L);
serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
@@ -4172,6 +4175,38 @@
}
}
+ @Override
+ public Map<String, Object> getHeLibraryCount(@RequestBody HeLibraryCountVO heLibraryCountVO) {
+ if (ObjectUtils.isEmpty(heLibraryCountVO)) {
+ return new HashMap<>();
+ }
+ // 1. 鏌ヨ鍒嗙粍缁熻锛堝彂閫佹�婚噺銆佸彂閫佹垚鍔熼噺銆佸凡璇婚噺锛�
+ List<Map<String, Object>> groupStats = serviceSubtaskMapper.getHeLibraryCount(heLibraryCountVO);
+
+ // 2. 璁$畻鍚勭粍鐨勫彂閫佹垚鍔熺巼鍜屽凡璇荤巼
+ List<Map<String, Object>> result = new ArrayList<>();
+ if (CollectionUtils.isNotEmpty(groupStats)) {
+ for (Map<String, Object> row : groupStats) {
+ long totalCount = row.get("totalCount") != null ? ((Number) row.get("totalCount")).longValue() : 0L;
+ long sendSuccessCount = row.get("sendSuccessCount") != null ? ((Number) row.get("sendSuccessCount")).longValue() : 0L;
+ long readCount = row.get("readCount") != null ? ((Number) row.get("readCount")).longValue() : 0L;
+ // 鍙戦�佹垚鍔熺巼
+ double sendSuccessRate = totalCount > 0 ? (double) sendSuccessCount / totalCount : 0.0;
+ // 宸茶鐜囷紙鍩轰簬鍙戦�佹垚鍔熺殑鏁伴噺璁$畻锛�
+ double readRate = sendSuccessCount > 0 ? (double) readCount / sendSuccessCount : 0.0;
+ row.put("sendSuccessRate", sendSuccessRate);
+ row.put("readRate", readRate);
+ result.add(row);
+ }
+ }
+
+ Map<String, Object> resultMap = new HashMap<>();
+ resultMap.put("list", result);
+ resultMap.put("total", result.size());
+ return resultMap;
+ }
+
+
private Boolean saveServiceSubtaskDetail(ServiceSubtask serviceSubtask) {
Boolean result = true;
//3.4 濡傛灉3.1鎴�3.2涓簍rue鐨勮瘽锛屾牴鎹畉ype鍒ゆ柇浠�涔堢被鍨�
diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
index 06dc0aa..dfe8dfd 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -2495,4 +2495,50 @@
ORDER BY groupCode
</select>
+ <!-- 瀹f暀缁熻锛氭寜鐥呭尯鎴栫瀹ゅ垎缁勶紝缁熻鍙戦�佹�婚噺銆佸彂閫佹垚鍔熼噺锛坰endstate=6锛夈�佸凡璇婚噺锛坒inishtime涓嶄负绌猴級 -->
+ <select id="getHeLibraryCount" parameterType="com.smartor.domain.VO.HeLibraryCountVO" resultType="map">
+ SELECT
+ <choose>
+ <when test="hospitaldistrictcodes != null and hospitaldistrictcodes.size() > 0">
+ leavehospitaldistrictcode AS groupCode,
+ leavehospitaldistrictname AS groupName,
+ </when>
+ <otherwise>
+ deptcode AS groupCode,
+ deptname AS groupName,
+ </otherwise>
+ </choose>
+ COUNT(*) AS totalCount,
+ SUM(CASE WHEN sendstate = 6 THEN 1 ELSE 0 END) AS sendSuccessCount,
+ SUM(CASE WHEN finishtime IS NOT NULL THEN 1 ELSE 0 END) AS readCount
+ FROM service_subtask
+ WHERE del_flag = 0
+ AND service_type = 4
+ <if test="starttime != null">AND starttime >= #{starttime}</if>
+ <if test="endtime != null">AND endtime <= #{endtime}</if>
+ <if test="visittime != null">AND DATE(visit_time) = DATE(#{visittime})</if>
+ <if test="finishtime != null">AND DATE(finishtime) = DATE(#{finishtime})</if>
+ <if test="hospType != null and hospType != ''">AND hosp_type = #{hospType}</if>
+ <choose>
+ <when test="hospitaldistrictcodes != null and hospitaldistrictcodes.size() > 0">
+ AND leavehospitaldistrictcode IN
+ <foreach collection="hospitaldistrictcodes" item="code" open="(" separator="," close=")">
+ #{code}
+ </foreach>
+ GROUP BY leavehospitaldistrictcode, leavehospitaldistrictname
+ ORDER BY groupCode
+ </when>
+ <otherwise>
+ <if test="deptcodes != null and deptcodes.size() > 0">
+ AND deptcode IN
+ <foreach collection="deptcodes" item="code" open="(" separator="," close=")">
+ #{code}
+ </foreach>
+ </if>
+ GROUP BY deptcode, deptname
+ ORDER BY groupCode
+ </otherwise>
+ </choose>
+ </select>
+
</mapper>
--
Gitblit v1.9.3