|
@@ -2,6 +2,7 @@ package com.qunzhixinxi.hnqz.admin.controller;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
+import cn.hutool.core.date.LocalDateTimeUtil;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.constant.enums.DelEnum;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysAreaEntity;
|
|
@@ -11,7 +12,9 @@ import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysUserArea;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmDaAgent;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmDaDrugEnt;
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.entity.WmPackageTaskTypeQty;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskType;
|
|
|
+import com.qunzhixinxi.hnqz.admin.event.PackageContractEvent;
|
|
|
import com.qunzhixinxi.hnqz.admin.mapper.SysDeptMapper;
|
|
|
import com.qunzhixinxi.hnqz.admin.mapper.SysDeptRelationMapper;
|
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmDaAgentMapper;
|
|
@@ -20,10 +23,13 @@ import com.qunzhixinxi.hnqz.admin.mapper.WmTaskTypeMapper;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.SysAreaEntityService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.SysUserAreaService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.SysUserService;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.WmPackageTaskTypeQtyService;
|
|
|
import com.qunzhixinxi.hnqz.common.core.util.R;
|
|
|
import com.qunzhixinxi.hnqz.common.security.annotation.Inner;
|
|
|
+import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.context.ApplicationEventPublisher;
|
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
|
import org.springframework.http.MediaType;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -38,11 +44,14 @@ import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.LocalTime;
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.Comparator;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Set;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
+import static org.bouncycastle.asn1.x500.style.RFC4519Style.o;
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 初始化控制器
|
|
@@ -65,6 +74,8 @@ public class InitController {
|
|
|
private final SysAreaEntityService areaEntityService;
|
|
|
private final SysUserService userService;
|
|
|
private final RedisTemplate<String, Object> redisTemplate;
|
|
|
+ private final ApplicationEventPublisher applicationEventPublisher;
|
|
|
+ private final WmPackageTaskTypeQtyService packageTaskTypeQtyService;
|
|
|
|
|
|
|
|
|
@Inner(value = false)
|
|
@@ -402,5 +413,30 @@ public class InitController {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ @Inner(value = false)
|
|
|
+ @PostMapping(value = "/cnbg/cache/clean")
|
|
|
+ public R<Boolean> sendPkgContractEvent(@RequestBody Map<String, Object> params){
|
|
|
+ Integer pkgId = (Integer) params.get("pkgId");
|
|
|
+
|
|
|
+ List<WmPackageTaskTypeQty> list = packageTaskTypeQtyService.list(Wrappers.<WmPackageTaskTypeQty>lambdaQuery().eq(WmPackageTaskTypeQty::getPackageId, pkgId).orderByDesc(WmPackageTaskTypeQty::getCreateTime));
|
|
|
+
|
|
|
+ if (CollectionUtil.isEmpty(list)) {
|
|
|
+ return R.failed(Boolean.FALSE,"不存在任务数量明细");
|
|
|
+ }
|
|
|
+
|
|
|
+ Map<LocalDateTime, List<WmPackageTaskTypeQty>> collect = list.stream().collect(Collectors.groupingBy(WmPackageTaskTypeQty::getCreateTime));
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
+ LocalDateTime localDateTime = collect.keySet().stream().max(Comparator.comparing(item -> Math.abs(LocalDateTimeUtil.between(now, item).getSeconds()))).orElse(null);
|
|
|
+
|
|
|
+ PackageContractEvent event = new PackageContractEvent();
|
|
|
+ event.setPackageId(pkgId);
|
|
|
+ event.setTaskTypeQtiyList(collect.get(localDateTime));
|
|
|
+ event.setCreator("admin");
|
|
|
+
|
|
|
+ applicationEventPublisher.publishEvent(event);
|
|
|
+
|
|
|
+ return R.ok(Boolean.TRUE,"合同生成事件已发送");
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|