|
@@ -1,14 +1,22 @@
|
|
|
package com.qunzhixinxi.hnqz.admin.controller;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.entity.SysDeptCsm;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysDeptRelation;
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.WmDaAgent;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.WmDaDrugEnt;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.WmDeptRegulations;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
|
|
|
+import com.qunzhixinxi.hnqz.admin.enums.DeptLevelEnum;
|
|
|
+import com.qunzhixinxi.hnqz.admin.mapper.SysDeptCsmMapper;
|
|
|
+import com.qunzhixinxi.hnqz.admin.mapper.SysUserMapper;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.SysDeptRelationService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmDaAgentService;
|
|
@@ -32,6 +40,8 @@ import java.util.ArrayList;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.Set;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -56,6 +66,10 @@ public class SysDeptController {
|
|
|
|
|
|
private final WmDeptRegulationsService wmDeptRegulationsService;
|
|
|
|
|
|
+ private final SysDeptCsmMapper sysDeptCsmMapper;
|
|
|
+
|
|
|
+ private final SysUserMapper sysUserMapper;
|
|
|
+
|
|
|
/**
|
|
|
* 获取登录用户企业的有效期
|
|
|
*
|
|
@@ -475,12 +489,102 @@ public class SysDeptController {
|
|
|
return R.ok(list);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 分页查询企业-用于BC总负责人
|
|
|
+ *
|
|
|
+ * @param name 企业名称
|
|
|
+ * @param csmName 负责人
|
|
|
+ * @param level 企业类型(2-药企,3-CSO,4-CSO,5-其他)
|
|
|
+ * @return {@link R}<{@link ?}> 结果
|
|
|
+ */
|
|
|
+ @GetMapping("/page-dept-for-bc")
|
|
|
+ public R<IPage<SysDept>> pageDeptForCsm(Page<SysDept> page, String name, String csmName, Integer level) {
|
|
|
+ LambdaQueryWrapper<SysDept> queryWrapper = Wrappers.lambdaQuery();
|
|
|
+ if (StrUtil.isNotBlank(name)) {
|
|
|
+ queryWrapper.like(SysDept::getName, name);
|
|
|
+ }
|
|
|
+ if (StrUtil.isNotBlank(csmName)) {
|
|
|
+ List<SysUser> users = sysUserMapper.selectList(Wrappers.<SysUser>lambdaQuery()
|
|
|
+ .eq(SysUser::getRealname, csmName));
|
|
|
+ if (CollUtil.isEmpty(users)) {
|
|
|
+ return R.ok(page);
|
|
|
+ }
|
|
|
+ Set<Integer> userIds = users.stream().map(SysUser::getUserId).collect(Collectors.toSet());
|
|
|
+ List<SysDeptCsm> deptCsms = sysDeptCsmMapper.selectList(Wrappers.<SysDeptCsm>lambdaQuery()
|
|
|
+ .in(SysDeptCsm::getUserId, userIds));
|
|
|
+ if (CollUtil.isEmpty(deptCsms)) {
|
|
|
+ return R.ok(page);
|
|
|
+ }
|
|
|
+ Set<Integer> deptIds = deptCsms.stream().map(SysDeptCsm::getDeptId).collect(Collectors.toSet());
|
|
|
+ queryWrapper.in(SysDept::getDeptId, deptIds);
|
|
|
+ }
|
|
|
+ if (level != null) {
|
|
|
+ queryWrapper.eq(SysDept::getLevel, level);
|
|
|
+ }
|
|
|
+
|
|
|
+ queryWrapper.ne(SysDept::getLevel, DeptLevelEnum.ADMIN.getVal());
|
|
|
+ sysDeptService.page(page, queryWrapper);
|
|
|
+
|
|
|
+ List<SysDept> records = page.getRecords();
|
|
|
+ if (CollUtil.isEmpty(records)) {
|
|
|
+ return R.ok(page);
|
|
|
+ }
|
|
|
+
|
|
|
+ records.forEach(record -> {
|
|
|
+ // 负责人
|
|
|
+ List<SysDeptCsm> deptCsms = sysDeptCsmMapper.selectList(Wrappers.<SysDeptCsm>lambdaQuery()
|
|
|
+ .eq(SysDeptCsm::getDeptId, record.getDeptId()));
|
|
|
+ if (CollUtil.isNotEmpty(deptCsms)) {
|
|
|
+ Set<Integer> userIds = deptCsms.stream().map(SysDeptCsm::getUserId).collect(Collectors.toSet());
|
|
|
+ List<SysUser> users = sysUserMapper.selectBatchIds(userIds);
|
|
|
+ record.setCsmNames(users.stream().map(SysUser::getRealname).collect(Collectors.joining(";")));
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ return R.ok(page);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 将CMS分配给部门
|
|
|
+ *
|
|
|
+ * @param params 参数
|
|
|
+ * @return {@link R}<{@link ?}> 结果
|
|
|
+ */
|
|
|
+ @SysLog("将CMS分配给部门")
|
|
|
+ @PostMapping("/assign-cms-to-dept")
|
|
|
+ public R<?> assignCmsToDept(@RequestBody Map<String, Object> params) {
|
|
|
+ List<Integer> cmsUserIds = (List<Integer>) params.get("userIds");
|
|
|
+ Integer deptId = (Integer) params.get("deptId");
|
|
|
+ if (CollUtil.isEmpty(cmsUserIds) || deptId == null) {
|
|
|
+ return R.failed("userIds和deptId必填");
|
|
|
+ }
|
|
|
+
|
|
|
+ cmsUserIds.forEach(userId -> {
|
|
|
+ Integer count = sysDeptCsmMapper.selectCount(Wrappers.<SysDeptCsm>lambdaQuery()
|
|
|
+ .eq(SysDeptCsm::getDeptId, deptId)
|
|
|
+ .eq(SysDeptCsm::getUserId, userId));
|
|
|
+ if (count <= 0) {
|
|
|
+ SysUser user = sysUserMapper.selectById(userId);
|
|
|
+ SysDeptCsm insert = new SysDeptCsm();
|
|
|
+ insert.setDeptId(deptId);
|
|
|
+ insert.setUserId(userId);
|
|
|
+ insert.setCsmName(user.getRealname());
|
|
|
+ insert.setQrCodeId(" ");
|
|
|
+ insert.setCorpId(" ");
|
|
|
+ sysDeptCsmMapper.insert(insert);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ return R.ok(Boolean.TRUE);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 保存部门规章制度
|
|
|
*
|
|
|
* @param list 列表
|
|
|
* @return {@link R}<{@link ?}>
|
|
|
*/
|
|
|
+ @SysLog("保存部门规章制度")
|
|
|
@PostMapping("/dept-regulations/save")
|
|
|
public R<?> saveDeptRegulations(@RequestBody List<WmDeptRegulations> list) {
|
|
|
if (CollUtil.isEmpty(list)) {
|
|
@@ -507,6 +611,7 @@ public class SysDeptController {
|
|
|
* @param params 参数
|
|
|
* @return {@link R}<{@link ?}> 结果
|
|
|
*/
|
|
|
+ @SysLog("更新企业截止时间")
|
|
|
@PostMapping("/update-expiry-date")
|
|
|
public R<?> updateExpiryDate(@RequestBody Map<String, Object> params) {
|
|
|
List<Integer> deptIds = (List<Integer>) params.get("deptIds");
|
|
@@ -522,7 +627,12 @@ public class SysDeptController {
|
|
|
update.setExpiryDate(LocalDate.parse(expiryDate, DateTimeFormatter.ofPattern("yyyy-MM-dd")));
|
|
|
} else {
|
|
|
// 默认延长一年
|
|
|
- update.setExpiryDate(LocalDate.now().plusYears(1L));
|
|
|
+ SysDept dept = sysDeptService.getById(deptId);
|
|
|
+ if (dept.getExpiryDate() != null) {
|
|
|
+ update.setExpiryDate(dept.getExpiryDate().plusYears(1L));
|
|
|
+ } else {
|
|
|
+ update.setExpiryDate(LocalDate.now().plusYears(1L));
|
|
|
+ }
|
|
|
}
|
|
|
sysDeptService.updateById(update);
|
|
|
}
|