|
@@ -15,6 +15,7 @@ import com.qunzhixinxi.hnqz.admin.api.dto.SysCheckChainNodeCheckHistoryDTO.OnCre
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysCheckChainNodeCheckHistory;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysDictItem;
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.entity.SysEnterpriseArea;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmDaDrugEntDrugtable;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmDaHospital;
|
|
@@ -28,6 +29,8 @@ import com.qunzhixinxi.hnqz.admin.controller.task.vo.TaskReqVO.OnPage;
|
|
|
import com.qunzhixinxi.hnqz.admin.controller.task.vo.TaskRespVO;
|
|
|
import com.qunzhixinxi.hnqz.admin.controller.task.vo.TaskRespVO.ToDirectCheck;
|
|
|
import com.qunzhixinxi.hnqz.admin.mapper.SysCheckChainNodeCheckHistoryMapper;
|
|
|
+import com.qunzhixinxi.hnqz.admin.mapper.SysDeptMapper;
|
|
|
+import com.qunzhixinxi.hnqz.admin.mapper.SysEnterpriseAreaMapper;
|
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmTaskV2Mapper;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.SysUserAreaService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmDaHospitalService;
|
|
@@ -41,6 +44,7 @@ import com.qunzhixinxi.hnqz.common.core.exception.BizException;
|
|
|
import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
|
|
|
import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
|
|
|
|
|
|
+import java.text.DecimalFormat;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.LocalTime;
|
|
@@ -51,6 +55,7 @@ import java.util.Collection;
|
|
|
import java.util.Collections;
|
|
|
import java.util.Comparator;
|
|
|
import java.util.HashMap;
|
|
|
+import java.util.HashSet;
|
|
|
import java.util.LinkedHashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
@@ -85,6 +90,8 @@ public class TaskManager {
|
|
|
@Resource private WmScorePackageStatusService scorePackageStatusService;
|
|
|
@Resource private SysCheckChainNodeCheckHistoryMapper checkChainNodeCheckHistoryMapper;
|
|
|
@Resource private WmDaHospitalService wmDaHospitalService;
|
|
|
+ @Resource private SysEnterpriseAreaMapper enterpriseAreaMapper;
|
|
|
+ @Resource private SysDeptMapper deptMapper;
|
|
|
|
|
|
// 丁凯总作为分管领导可见的服务商
|
|
|
private static final List<Integer> DING_KAI_DEPT_ID =
|
|
@@ -162,6 +169,9 @@ public class TaskManager {
|
|
|
// 获取vendor 根据人员所属区域
|
|
|
List<Integer> vendorList = getVendorList(query.getVendorId(), user);
|
|
|
|
|
|
+ // 获取服务区域简称
|
|
|
+ Set<String> provAbbrs = this.getProvAbbrs(user);
|
|
|
+
|
|
|
// 计算服务包查询周期
|
|
|
Map<String, LocalDate> pkgPeriod = this.calcPkgPeriod(query.getYear(), query.getQuarter());
|
|
|
LocalDate issueDate = pkgPeriod.get("issueDate");
|
|
@@ -196,6 +206,7 @@ public class TaskManager {
|
|
|
endTime,
|
|
|
query.getTaskTypeId(),
|
|
|
vendorList,
|
|
|
+ provAbbrs,
|
|
|
skuIds,
|
|
|
query.getSalesId(),
|
|
|
query.getProvAbbr(),
|
|
@@ -229,6 +240,7 @@ public class TaskManager {
|
|
|
endTime,
|
|
|
query.getTaskTypeId(),
|
|
|
Collections.singletonList(query.getVendorId()),
|
|
|
+ null,
|
|
|
skuIds,
|
|
|
query.getSalesId(),
|
|
|
query.getProvAbbr(),
|
|
@@ -250,6 +262,7 @@ public class TaskManager {
|
|
|
endTime,
|
|
|
query.getTaskTypeId(),
|
|
|
vendor,
|
|
|
+ null,
|
|
|
skuIds,
|
|
|
query.getSalesId(),
|
|
|
query.getProvAbbr(),
|
|
@@ -269,6 +282,7 @@ public class TaskManager {
|
|
|
endTime,
|
|
|
query.getTaskTypeId(),
|
|
|
vendorList,
|
|
|
+ null,
|
|
|
skuIds,
|
|
|
query.getSalesId(),
|
|
|
query.getProvAbbr(),
|
|
@@ -281,6 +295,35 @@ public class TaskManager {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 获取服务区域简称
|
|
|
+ *
|
|
|
+ * @param user 用户
|
|
|
+ * @return {@link Set }<{@link String }> 服务区域简称
|
|
|
+ */
|
|
|
+ private Set<String> getProvAbbrs(HnqzUser user) {
|
|
|
+ // 当前登录人所拥有的区域
|
|
|
+ List<Long> areaIds = userAreaService.listUserAreas(Long.valueOf(user.getId()));
|
|
|
+
|
|
|
+ // 服务区域简称
|
|
|
+ Set<String> provAbbrs = new HashSet<>();
|
|
|
+ if (CollUtil.isNotEmpty(areaIds)) {
|
|
|
+ // 根据areaIds查区域/服务商(注意业务要求这里只用省级进行粗粒度的匹配,vendor的前两位为省级编码)
|
|
|
+ Set<String> provAreaIds = areaIds.stream()
|
|
|
+ .map(vendor -> String.valueOf(vendor).substring(0, 2)).collect(Collectors.toSet());
|
|
|
+
|
|
|
+ List<SysEnterpriseArea> enterpriseAreas = enterpriseAreaMapper.selectList(Wrappers.emptyWrapper());
|
|
|
+
|
|
|
+ Set<Integer> entIds = enterpriseAreas.stream()
|
|
|
+ .filter(entArea -> provAreaIds.contains(String.valueOf(entArea.getAreaId()).substring(0, 2)))
|
|
|
+ .map(entArea -> Math.toIntExact(entArea.getEntId())).collect(Collectors.toSet());
|
|
|
+
|
|
|
+ List<SysDept> depts = deptMapper.selectBatchIds(entIds);
|
|
|
+ provAbbrs = depts.stream().map(SysDept::getProvAbbr).filter(abbr -> !StrUtil.isBlank(abbr)).collect(Collectors.toSet());
|
|
|
+ }
|
|
|
+ return provAbbrs;
|
|
|
+ }
|
|
|
+
|
|
|
private void pageDirectCheck(
|
|
|
Page<ToDirectCheck> page,
|
|
|
LocalDate issueDate,
|
|
@@ -290,6 +333,7 @@ public class TaskManager {
|
|
|
LocalDateTime endTime,
|
|
|
String taskTypeId,
|
|
|
List<Integer> vendorList,
|
|
|
+ Set<String> provAbbrs,
|
|
|
List<String> skuIds,
|
|
|
Integer salesId,
|
|
|
String provAbbr,
|
|
@@ -304,6 +348,7 @@ public class TaskManager {
|
|
|
endTime,
|
|
|
taskTypeId,
|
|
|
vendorList,
|
|
|
+ provAbbrs,
|
|
|
skuIds,
|
|
|
salesId,
|
|
|
provAbbr,
|
|
@@ -1016,6 +1061,9 @@ public class TaskManager {
|
|
|
// 获取vendor
|
|
|
List<Integer> vendorList = getVendorList(query.getVendorId(), user);
|
|
|
|
|
|
+ // 获取服务区域简称
|
|
|
+ Set<String> provAbbrs = this.getProvAbbrs(user);
|
|
|
+
|
|
|
// 计算服务包查询周期
|
|
|
Map<String, LocalDate> pkgPeriod = this.calcPkgPeriod(query.getYear(), query.getQuarter());
|
|
|
LocalDate issueDate = pkgPeriod.get("issueDate");
|
|
@@ -1044,6 +1092,7 @@ public class TaskManager {
|
|
|
endTime,
|
|
|
query.getTaskTypeId(),
|
|
|
vendorList,
|
|
|
+ provAbbrs,
|
|
|
skuIds,
|
|
|
query.getSalesId(),
|
|
|
query.getProvAbbr(),
|