包头bug修改
This commit is contained in:
parent
fbc32c5693
commit
55b80d5c31
@ -60,10 +60,7 @@ import com.zhgd.xmgl.modules.worker.mapper.EnterpriseInfoMapper;
|
||||
import com.zhgd.xmgl.modules.worker.mapper.UfaceDevMapper;
|
||||
import com.zhgd.xmgl.modules.worker.mapper.WorkerAttendanceMapper;
|
||||
import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoMapper;
|
||||
import com.zhgd.xmgl.modules.worker.service.ITeamInfoService;
|
||||
import com.zhgd.xmgl.modules.worker.service.IUfaceDevService;
|
||||
import com.zhgd.xmgl.modules.worker.service.IWorkerAttendancePresenceService;
|
||||
import com.zhgd.xmgl.modules.worker.service.IWorkerAttendanceService;
|
||||
import com.zhgd.xmgl.modules.worker.service.*;
|
||||
import com.zhgd.xmgl.modules.worker.service.impl.EnterpriseInfoServiceImpl;
|
||||
import com.zhgd.xmgl.modules.worker.service.impl.WorkerAttendanceServiceImpl;
|
||||
import com.zhgd.xmgl.modules.xz.entity.XzHikvisionSync;
|
||||
@ -248,6 +245,9 @@ public class HikvisionCall {
|
||||
@Lazy
|
||||
@Resource
|
||||
private RedissonClient redissonClient;
|
||||
@Lazy
|
||||
@Autowired
|
||||
private IDepartmentInfoService departmentInfoService;
|
||||
|
||||
/**
|
||||
* 获取图片
|
||||
@ -1187,28 +1187,35 @@ public class HikvisionCall {
|
||||
}
|
||||
}
|
||||
|
||||
private void saveIfNotExistDepartment(WorkerInfo workerInfo, Project project) {
|
||||
// boolean existOrg = hikvisionCall.existOrg(project, workerInfo.getTeamId() + "", StringsUtils.getUniqueEnterpriseId(workerInfo.getEnterpriseId(), workerInfo.getProjectSn()));
|
||||
// if (!existOrg) {
|
||||
// RLock lock = null;
|
||||
// try {
|
||||
// String lockKey = "isc_org_team_add:" + workerInfo.getTeamId();
|
||||
// lock = redissonClient.getLock(lockKey);
|
||||
// lock.tryLock( 100L, TimeUnit.SECONDS);
|
||||
// existOrg = hikvisionCall.existOrg(project, workerInfo.getTeamId() + "", StringsUtils.getUniqueEnterpriseId(workerInfo.getEnterpriseId(), workerInfo.getProjectSn()));
|
||||
// if (!existOrg) {
|
||||
// TeamInfo teamInfo = teamInfoService.getById(workerInfo.getTeamId());
|
||||
// HikvisionOrganization hikvisionOrganization = getHikvisionOrganization(teamInfo, project);
|
||||
// addOrgNoticeFromHttp(project, hikvisionOrganization);
|
||||
// }
|
||||
// } catch (Exception e) {
|
||||
// log.error("", e);
|
||||
// } finally {
|
||||
// if (lock != null) {
|
||||
// lock.unlock();
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
/**
|
||||
* isc部门不存在就保存部门
|
||||
*
|
||||
* @param workerInfo
|
||||
* @param project
|
||||
* @throws Exception
|
||||
*/
|
||||
private void saveIfNotExistDepartment(WorkerInfo workerInfo, Project project) throws Exception {
|
||||
DepartmentInfo departmentInfo = departmentInfoService.getOne(new LambdaQueryWrapper<DepartmentInfo>()
|
||||
.eq(DepartmentInfo::getId, workerInfo.getDepartmentId()).last(Cts.IGNORE_DATA_SCOPE_CONDITION));
|
||||
HikvisionOrganization hikvisionOrganization = getHikvisionOrganization(departmentInfo, project);
|
||||
if (!existOrg(project, String.valueOf(departmentInfo.getId()), hikvisionOrganization.getParentIndexCode())) {
|
||||
RLock lock = null;
|
||||
try {
|
||||
String lockKey = "isc_org_department_add:" + departmentInfo.getId();
|
||||
lock = redissonClient.getLock(lockKey);
|
||||
lock.tryLock(100L, TimeUnit.SECONDS);
|
||||
boolean existOrg = existOrg(project, String.valueOf(departmentInfo.getId()), hikvisionOrganization.getParentIndexCode());
|
||||
if (!existOrg) {
|
||||
addDepartmentInfoForHikvision(departmentInfo);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("", e);
|
||||
} finally {
|
||||
if (lock != null) {
|
||||
lock.unlock();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1229,8 +1236,7 @@ public class HikvisionCall {
|
||||
existOrg = hikvisionCall.existOrg(project, workerInfo.getTeamId() + "", StringsUtils.getUniqueEnterpriseId(workerInfo.getEnterpriseId(), workerInfo.getProjectSn()));
|
||||
if (!existOrg) {
|
||||
TeamInfo teamInfo = teamInfoService.getById(workerInfo.getTeamId());
|
||||
HikvisionOrganization hikvisionOrganization = getHikvisionOrganization(teamInfo, project);
|
||||
addOrgNoticeFromHttp(project, hikvisionOrganization);
|
||||
addTeamInfoForHikvision(teamInfo);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("", e);
|
||||
@ -2316,7 +2322,7 @@ public class HikvisionCall {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return;
|
||||
}
|
||||
String orgIndexCode = StringsUtils.getUniqueEnterpriseId(enterpriseInfo.getId(), enterpriseInfo.getProjectSn());
|
||||
String orgIndexCode = StringsUtils.getUniqueEnterpriseId(enterpriseInfo.getId(), project.getProjectSn());
|
||||
HikvisionOrganization hikvisionOrganization = getHikvisionOrganization(enterpriseInfo, orgIndexCode);
|
||||
JSONArray orgList = getOrgList(project, orgIndexCode, project.getProjectSn());
|
||||
if (CollUtil.isNotEmpty(orgList)) {
|
||||
@ -2403,6 +2409,7 @@ public class HikvisionCall {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return;
|
||||
}
|
||||
saveEnterpriseIfNotExist(project, teamInfo.getEnterpriseId());
|
||||
HikvisionOrganization hikvisionOrganization = getHikvisionOrganization(teamInfo, project);
|
||||
addOrgNoticeFromHttp(project, hikvisionOrganization);
|
||||
}
|
||||
@ -2421,7 +2428,6 @@ public class HikvisionCall {
|
||||
hikvisionOrganization.setOrgIndexCode(String.valueOf(teamInfo.getId()));
|
||||
hikvisionOrganization.setOrgName(teamInfo.getTeamName());
|
||||
hikvisionOrganization.setParentIndexCode(StringsUtils.getUniqueEnterpriseId(teamInfo.getEnterpriseId(), project.getProjectSn()));
|
||||
|
||||
return hikvisionOrganization;
|
||||
}
|
||||
|
||||
@ -2435,6 +2441,7 @@ public class HikvisionCall {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return;
|
||||
}
|
||||
saveEnterpriseIfNotExist(project, teamInfo.getEnterpriseId());
|
||||
HikvisionOrganization hikvisionOrganization = getHikvisionOrganization(teamInfo, project);
|
||||
if (existOrg(project, String.valueOf(teamInfo.getId()), hikvisionOrganization.getParentIndexCode())) {
|
||||
editOrgFromHttp(project, hikvisionOrganization);
|
||||
@ -2504,6 +2511,7 @@ public class HikvisionCall {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return;
|
||||
}
|
||||
saveEnterpriseIfNotExist(project, departmentInfo.getEnterpriseId());
|
||||
HikvisionOrganization hikvisionOrganization = getHikvisionOrganization(departmentInfo, project);
|
||||
addOrgNoticeFromHttp(project, hikvisionOrganization);
|
||||
}
|
||||
@ -2516,7 +2524,7 @@ public class HikvisionCall {
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
private HikvisionOrganization getHikvisionOrganization(DepartmentInfo departmentInfo, Project project) throws Exception {
|
||||
private HikvisionOrganization getHikvisionOrganization(DepartmentInfo departmentInfo, Project project) {
|
||||
HikvisionOrganization hikvisionOrganization = new HikvisionOrganization();
|
||||
hikvisionOrganization.setClientId(null);
|
||||
hikvisionOrganization.setOrgIndexCode(String.valueOf(departmentInfo.getId()));
|
||||
@ -2535,6 +2543,7 @@ public class HikvisionCall {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return;
|
||||
}
|
||||
saveEnterpriseIfNotExist(project, departmentInfo.getEnterpriseId());
|
||||
HikvisionOrganization hikvisionOrganization = getHikvisionOrganization(departmentInfo, project);
|
||||
if (existOrg(project, String.valueOf(departmentInfo.getId()), hikvisionOrganization.getParentIndexCode())) {
|
||||
editOrgFromHttp(project, hikvisionOrganization);
|
||||
@ -2544,6 +2553,40 @@ public class HikvisionCall {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* isc企业不存在就保存企业
|
||||
*
|
||||
* @param project
|
||||
* @param enterpriseId
|
||||
* @throws Exception
|
||||
*/
|
||||
private void saveEnterpriseIfNotExist(Project project, Long enterpriseId) throws Exception {
|
||||
//保存企业
|
||||
EnterpriseInfo enterpriseInfo = enterpriseInfoService.getOne(new LambdaQueryWrapper<EnterpriseInfo>()
|
||||
.eq(EnterpriseInfo::getId, enterpriseId).last(Cts.IGNORE_DATA_SCOPE_CONDITION));
|
||||
String orgIndexCode = StringsUtils.getUniqueEnterpriseId(enterpriseInfo.getId(), project.getProjectSn());
|
||||
JSONArray orgList = getOrgList(project, orgIndexCode, project.getProjectSn());
|
||||
if (CollUtil.isEmpty(orgList)) {
|
||||
RLock lock = null;
|
||||
try {
|
||||
String lockKey = "isc_org_enterprise_add:" + enterpriseInfo.getId();
|
||||
lock = redissonClient.getLock(lockKey);
|
||||
lock.tryLock(100L, TimeUnit.SECONDS);
|
||||
orgList = getOrgList(project, orgIndexCode, project.getProjectSn());
|
||||
if (CollUtil.isEmpty(orgList)) {
|
||||
enterpriseInfo.setProjectSn(project.getProjectSn());
|
||||
this.addEnterpriseInfoForHikvision(enterpriseInfo);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("", e);
|
||||
} finally {
|
||||
if (lock != null) {
|
||||
lock.unlock();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除组织
|
||||
*
|
||||
|
||||
@ -1,6 +1,9 @@
|
||||
package com.zhgd.xmgl.modules.baotou.controller;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.gexin.fastjson.JSON;
|
||||
import com.gexin.fastjson.TypeReference;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.zhgd.annotation.OperLog;
|
||||
import com.zhgd.xmgl.modules.baotou.entity.ConstructionPlanLedgerSet;
|
||||
import io.swagger.annotations.Api;
|
||||
@ -10,6 +13,7 @@ import io.swagger.annotations.ApiImplicitParams;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.HashMap;
|
||||
|
||||
import springfox.documentation.annotations.ApiIgnore;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
@ -43,10 +47,9 @@ import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
|
||||
|
||||
/**
|
||||
/**
|
||||
* @Title: Controller
|
||||
* @Description: 项目文件档案权限
|
||||
* @author: pds
|
||||
@ -136,14 +139,28 @@ public class ProjectFileAuthController {
|
||||
@ApiImplicitParam(name = "id", value = "项目文件档案权限ID", paramType = "query", required = true, dataType = "Integer")
|
||||
@GetMapping(value = "/queryById")
|
||||
public Result<ProjectFileAuth> queryById(@RequestParam(name="id",required=true) String id) {
|
||||
return Result.success(projectFileAuthService.queryById(id));
|
||||
}
|
||||
return Result.success(projectFileAuthService.queryById(id));
|
||||
}
|
||||
|
||||
@OperLog(operModul = "项目文件档案权限管理", operType = "保存", operDesc = "保存项目文件档案权限信息")
|
||||
@ApiOperation(value = "保存项目文件档案权限信息", notes = "保存项目文件档案权限信息" , httpMethod="POST")
|
||||
@PostMapping(value = "/saveList")
|
||||
public Result saveList(@RequestBody List<ProjectFileAuth> auths) {
|
||||
projectFileAuthService.saveList(auths);
|
||||
return Result.ok();
|
||||
}
|
||||
@OperLog(operModul = "项目文件档案权限管理", operType = "保存", operDesc = "保存项目文件档案权限信息")
|
||||
@ApiOperation(value = "保存项目文件档案权限信息", notes = "保存项目文件档案权限信息", httpMethod = "POST")
|
||||
@PostMapping(value = "/saveList")
|
||||
public Result saveList(@RequestBody List<ProjectFileAuth> auths) {
|
||||
projectFileAuthService.saveList(auths);
|
||||
return Result.ok();
|
||||
}
|
||||
|
||||
@OperLog(operModul = "项目文件档案权限管理", operType = "保存", operDesc = "保存项目文件档案权限信息v2")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "Integer"),
|
||||
@ApiImplicitParam(name = "fileId", value = "项目文件ID", paramType = "body", required = true, dataType = "Integer"),
|
||||
@ApiImplicitParam(name = "auths", value = "权限对象列表", paramType = "body", required = true, dataType = "Integer"),
|
||||
@ApiImplicitParam(name = "isUpdateChildAuth", value = "0只更新本文件夹权限1更新本文件夹和下面所有文件(夹)", paramType = "body", required = true, dataType = "Integer"),
|
||||
})
|
||||
@ApiOperation(value = "保存项目文件档案权限信息v2", notes = "保存项目文件档案权限信息v2", httpMethod = "POST")
|
||||
@PostMapping(value = "/saveListV2")
|
||||
public Result saveListV2(@RequestBody Map<String, Object> param) {
|
||||
projectFileAuthService.saveListV2(param);
|
||||
return Result.ok();
|
||||
}
|
||||
}
|
||||
|
||||
@ -46,14 +46,22 @@ public class ConstructionDeclarationData implements Serializable {
|
||||
*/
|
||||
@ApiModelProperty(value = "所属项目SN")
|
||||
private java.lang.String projectSn;
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private java.util.Date createDate;
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
private java.util.Date updateDate;
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private java.util.Date createDate;
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
private java.util.Date updateDate;
|
||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "资质有效期开始 yyyy-MM-dd")
|
||||
private java.util.Date validDateBegin;
|
||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "资质有效期结束 yyyy-MM-dd")
|
||||
private java.util.Date validDateEnd;
|
||||
}
|
||||
|
||||
@ -42,14 +42,25 @@ public class ProjectHomeManage implements Serializable {
|
||||
/**图标*/
|
||||
@ApiModelProperty(value="图标")
|
||||
private java.lang.String icon ;
|
||||
/**附件url或内容或链接*/
|
||||
@ApiModelProperty(value="附件url或内容或链接")
|
||||
private java.lang.String fileUrl ;
|
||||
/**创建时间*/
|
||||
@ApiModelProperty(value="创建时间")
|
||||
private java.util.Date createTime ;
|
||||
/**更新时间*/
|
||||
@ApiModelProperty(value="更新时间")
|
||||
private java.util.Date updateTime ;
|
||||
private java.lang.Integer sort ;
|
||||
/**
|
||||
* 附件url或内容或链接
|
||||
*/
|
||||
@ApiModelProperty(value = "附件url或内容或链接")
|
||||
private java.lang.String fileUrl;
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private java.util.Date createTime;
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
private java.util.Date updateTime;
|
||||
private java.lang.Integer sort;
|
||||
/**
|
||||
* 1展示栏目1 2展示栏目2 3管理制度
|
||||
*/
|
||||
@ApiModelProperty(value = "1展示栏目1 2展示栏目2 3管理制度")
|
||||
private java.lang.Integer type;
|
||||
}
|
||||
|
||||
@ -44,14 +44,32 @@ public class ProjectHomeShow implements Serializable {
|
||||
private java.lang.Integer whichModule ;
|
||||
/**1展示栏目12展示栏目2*/
|
||||
@ApiModelProperty(value="1展示栏目12展示栏目2")
|
||||
private java.lang.Integer type ;
|
||||
/**所属项目SN*/
|
||||
@ApiModelProperty(value="所属项目SN")
|
||||
private java.lang.String projectSn ;
|
||||
/**创建时间*/
|
||||
@ApiModelProperty(value="创建时间")
|
||||
private java.util.Date createDate ;
|
||||
/**更新时间*/
|
||||
@ApiModelProperty(value="更新时间")
|
||||
private java.util.Date updateDate ;
|
||||
private java.lang.Integer type;
|
||||
/**
|
||||
* 所属项目SN
|
||||
*/
|
||||
@ApiModelProperty(value = "所属项目SN")
|
||||
private java.lang.String projectSn;
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private java.util.Date createDate;
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
private java.util.Date updateDate;
|
||||
/**
|
||||
* 1附件2内容3链接
|
||||
*/
|
||||
@ApiModelProperty(value = "1附件2内容3链接")
|
||||
private java.lang.Integer contentType;
|
||||
|
||||
/**
|
||||
* 附件url或内容或链接
|
||||
*/
|
||||
@ApiModelProperty(value = "附件url或内容或链接")
|
||||
private java.lang.String fileUrl;
|
||||
|
||||
}
|
||||
|
||||
@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Description: 项目文件档案权限
|
||||
@ -43,12 +44,16 @@ public interface IProjectFileAuthService extends IService<ProjectFileAuth> {
|
||||
* @return
|
||||
*/
|
||||
void delete(String id);
|
||||
|
||||
/**
|
||||
* 根据id查询项目文件档案权限信息
|
||||
*
|
||||
* @param id 项目文件档案权限的id
|
||||
* @return
|
||||
*/
|
||||
ProjectFileAuth queryById(String id);
|
||||
|
||||
void saveList(List<ProjectFileAuth> auths);
|
||||
|
||||
void saveListV2(Map<String, Object> param);
|
||||
}
|
||||
|
||||
@ -1,43 +1,51 @@
|
||||
package com.zhgd.xmgl.modules.baotou.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.zhgd.jeecg.common.execption.OpenAlertException;
|
||||
import com.zhgd.xmgl.modules.baotou.entity.ProjectFileAuth;
|
||||
import com.zhgd.xmgl.modules.baotou.entity.ProjectFileAuth;
|
||||
import com.zhgd.xmgl.modules.baotou.mapper.ProjectFileAuthMapper;
|
||||
import com.zhgd.xmgl.modules.baotou.service.IProjectFileAuthService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.zhgd.jeecg.common.system.query.QueryGenerator;
|
||||
import com.zhgd.xmgl.util.PageUtil;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.gexin.fastjson.JSON;
|
||||
import com.gexin.fastjson.TypeReference;
|
||||
import com.zhgd.jeecg.common.execption.OpenAlertException;
|
||||
import com.zhgd.jeecg.common.system.query.QueryGenerator;
|
||||
import com.zhgd.xmgl.modules.baotou.entity.ProjectFileAuth;
|
||||
import com.zhgd.xmgl.modules.baotou.mapper.ProjectFileAuthMapper;
|
||||
import com.zhgd.xmgl.modules.baotou.service.IProjectFileAuthService;
|
||||
import com.zhgd.xmgl.modules.file.entity.ProjectFile;
|
||||
import com.zhgd.xmgl.modules.project.service.IProjectFileService;
|
||||
import com.zhgd.xmgl.util.PageUtil;
|
||||
import com.zhgd.xmgl.util.RefUtil;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.apache.commons.collections.MapUtils;
|
||||
import org.apache.commons.collections.list.PredicatedList;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Description: 项目文件档案权限
|
||||
* @author: pds
|
||||
* @date: 2024-08-26
|
||||
* @date: 2024-08-26
|
||||
* @version: V1.0
|
||||
*/
|
||||
@Service
|
||||
public class ProjectFileAuthServiceImpl extends ServiceImpl<ProjectFileAuthMapper, ProjectFileAuth> implements IProjectFileAuthService {
|
||||
@Autowired
|
||||
private ProjectFileAuthMapper projectFileAuthMapper;
|
||||
@Lazy
|
||||
@Autowired
|
||||
private IProjectFileService projectFileService;
|
||||
|
||||
@Override
|
||||
public IPage<ProjectFileAuth> queryPageList(HashMap<String, Object> param) {
|
||||
QueryWrapper<ProjectFileAuth> queryWrapper = this.getQueryWrapper(param);
|
||||
Page<ProjectFileAuth> page = PageUtil.getPage(param);
|
||||
IPage<ProjectFileAuth> pageList = baseMapper.queryList(page, queryWrapper,param);
|
||||
IPage<ProjectFileAuth> pageList = baseMapper.queryList(page, queryWrapper, param);
|
||||
pageList.setRecords(this.dealList(pageList.getRecords()));
|
||||
return pageList;
|
||||
}
|
||||
@ -67,7 +75,7 @@ public class ProjectFileAuthServiceImpl extends ServiceImpl<ProjectFileAuthMappe
|
||||
@Override
|
||||
public void edit(ProjectFileAuth projectFileAuth) {
|
||||
ProjectFileAuth oldProjectFileAuth = baseMapper.selectById(projectFileAuth.getId());
|
||||
if(oldProjectFileAuth==null) {
|
||||
if (oldProjectFileAuth == null) {
|
||||
throw new OpenAlertException("未找到对应实体");
|
||||
}
|
||||
baseMapper.updateById(projectFileAuth);
|
||||
@ -76,7 +84,7 @@ public class ProjectFileAuthServiceImpl extends ServiceImpl<ProjectFileAuthMappe
|
||||
@Override
|
||||
public void delete(String id) {
|
||||
ProjectFileAuth projectFileAuth = baseMapper.selectById(id);
|
||||
if(projectFileAuth==null) {
|
||||
if (projectFileAuth == null) {
|
||||
throw new OpenAlertException("未找到对应实体");
|
||||
}
|
||||
baseMapper.deleteById(id);
|
||||
@ -116,4 +124,53 @@ public class ProjectFileAuthServiceImpl extends ServiceImpl<ProjectFileAuthMappe
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveListV2(Map<String, Object> param) {
|
||||
//fileId
|
||||
//auths
|
||||
//isUpdateChildAuth
|
||||
String projectSn = MapUtils.getString(param, "projectSn");
|
||||
String fileId = MapUtils.getString(param, "fileId");
|
||||
ProjectFile file = projectFileService.getById(fileId);
|
||||
//所有下级保存相同权限
|
||||
List<ProjectFileAuth> auths = JSON.parseObject(JSON.toJSONString(param.get("auths")), new TypeReference<List<ProjectFileAuth>>() {
|
||||
});
|
||||
if (CollUtil.isNotEmpty(auths)) {
|
||||
List<Long> userIds = auths.stream().map(ProjectFileAuth::getUserId).collect(Collectors.toList());
|
||||
baseMapper.delete(new LambdaQueryWrapper<ProjectFileAuth>()
|
||||
.eq(ProjectFileAuth::getProjectFileId, fileId)
|
||||
.in(ProjectFileAuth::getUserId, userIds)
|
||||
);
|
||||
this.saveBatch(auths);
|
||||
//更新下面文件夹权限
|
||||
if (file.getIsDir() == 1) {
|
||||
List<ProjectFileAuth> childAuths = new ArrayList<>();
|
||||
if (Objects.equals(MapUtils.getInteger(param, "isUpdateChildAuth"), 1)) {
|
||||
QueryWrapper<ProjectFile> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.lambda().eq(ProjectFile::getProjectSn, projectSn)
|
||||
.likeRight(ProjectFile::getFilePath, file.getFilePath() + file.getFileName() + "/");
|
||||
List<ProjectFile> children = projectFileService.list(queryWrapper);
|
||||
if (CollUtil.isNotEmpty(children)) {
|
||||
List<Long> fileIds = children.stream().map(ProjectFile::getFileId).collect(Collectors.toList());
|
||||
baseMapper.delete(new LambdaQueryWrapper<ProjectFileAuth>()
|
||||
.in(ProjectFileAuth::getProjectFileId, fileIds)
|
||||
.in(ProjectFileAuth::getUserId, userIds)
|
||||
);
|
||||
children.forEach(o -> {
|
||||
for (ProjectFileAuth auth : auths) {
|
||||
ProjectFileAuth auth1 = ObjectUtil.cloneByStream(auth);
|
||||
auth1.setId(null);
|
||||
auth1.setProjectFileId(o.getFileId());
|
||||
childAuths.add(auth1);
|
||||
}
|
||||
});
|
||||
}
|
||||
if (CollUtil.isNotEmpty(childAuths)) {
|
||||
this.saveBatch(childAuths);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -7,25 +7,26 @@ import com.zhgd.jeecg.upload.domain.UploadFile;
|
||||
import com.zhgd.jeecg.upload.factory.ChunkUploaderFactory;
|
||||
import com.zhgd.jeecg.upload.util.DateUtil;
|
||||
import com.zhgd.xmgl.base.UploadFileDTO;
|
||||
import com.zhgd.xmgl.modules.baotou.entity.ProjectFileAuth;
|
||||
import com.zhgd.xmgl.modules.baotou.mapper.ProjectFileAuthMapper;
|
||||
import com.zhgd.xmgl.modules.basicdata.enums.SystemUserAccountTypeEnum;
|
||||
import com.zhgd.xmgl.modules.baotou.service.IProjectFileAuthService;
|
||||
import com.zhgd.xmgl.modules.file.entity.ProjectFile;
|
||||
import com.zhgd.xmgl.modules.file.mapper.ProjectFileMapper;
|
||||
import com.zhgd.xmgl.modules.file.service.IFiletransferService;
|
||||
import com.zhgd.xmgl.security.util.SecurityUtils;
|
||||
import com.zhgd.xmgl.modules.project.service.IProjectFileService;
|
||||
import com.zhgd.xmgl.util.MinioUtils;
|
||||
import com.zhgd.xmgl.util.PathUtil;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
|
||||
@Service
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public class FiletransferServiceImpl implements IFiletransferService {
|
||||
// @Value("${basePath}")
|
||||
// private String basePath;
|
||||
@ -35,6 +36,12 @@ public class FiletransferServiceImpl implements IFiletransferService {
|
||||
private ProjectFileMapper projectFileMapper;
|
||||
@Autowired
|
||||
private ProjectFileAuthMapper projectFileAuthMapper;
|
||||
@Lazy
|
||||
@Autowired
|
||||
private IProjectFileService projectFileService;
|
||||
@Lazy
|
||||
@Autowired
|
||||
private IProjectFileAuthService projectFileAuthService;
|
||||
|
||||
@Override
|
||||
public void uploadFile(HttpServletRequest request, UploadFileDTO uploadFileDTO) {
|
||||
@ -62,29 +69,13 @@ public class FiletransferServiceImpl implements IFiletransferService {
|
||||
userFile.setFileSize(uploadFile.getFileSize() + "");
|
||||
userFile.setUploadTime(DateUtil.getCurrentTime());
|
||||
projectFileMapper.insert(userFile);
|
||||
if (SecurityUtils.getUser() != null) {
|
||||
if (Objects.equals(SystemUserAccountTypeEnum.PROJECT_SUB_ACCOUNT.getValue(), SecurityUtils.getUser().getAccountType())) {
|
||||
Long userId = SecurityUtils.getUser().getUserId();
|
||||
ProjectFileAuth auth = new ProjectFileAuth();
|
||||
auth.setIsUpload(1);
|
||||
auth.setIsCreateNewFolder(1);
|
||||
auth.setIsPreview(1);
|
||||
auth.setIsSetPermission(1);
|
||||
auth.setIsDelete(1);
|
||||
auth.setIsMove(1);
|
||||
auth.setIsRename(1);
|
||||
auth.setIsDownload(1);
|
||||
auth.setIsView(1);
|
||||
auth.setProjectFileId(userFile.getFileId());
|
||||
auth.setUserId(userId);
|
||||
auth.setProjectSn(uploadFileDTO.getProjectSn());
|
||||
projectFileAuthMapper.insert(auth);
|
||||
}
|
||||
}
|
||||
|
||||
projectFileService.setAuth(userFile);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void checkParams(UploadFileDTO uploadFileDTO, UploadFile uploadFile) {
|
||||
List<ProjectFile> projectFiles = projectFileMapper.selectList(new LambdaQueryWrapper<ProjectFile>()
|
||||
.eq(ProjectFile::getProjectSn, uploadFileDTO.getProjectSn())
|
||||
|
||||
@ -10,18 +10,22 @@ import java.util.List;
|
||||
/**
|
||||
* @Description: 项目文件档案
|
||||
* @author: pds
|
||||
* @date: 2021-01-11
|
||||
* @date: 2021-01-11
|
||||
* @version: V1.0
|
||||
*/
|
||||
public interface IProjectFileService extends IService<ProjectFile> {
|
||||
/**
|
||||
* 添加项目文件档案信息
|
||||
*
|
||||
* @param projectFile
|
||||
*/
|
||||
void addProjectFile(ProjectFile projectFile);
|
||||
|
||||
void setAuth(ProjectFile userFile);
|
||||
|
||||
/**
|
||||
* 文件重命名
|
||||
*
|
||||
* @param projectFile
|
||||
*/
|
||||
void renamefile(ProjectFile projectFile);
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
package com.zhgd.xmgl.modules.project.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.zhgd.jeecg.common.api.vo.Result;
|
||||
@ -8,6 +10,7 @@ import com.zhgd.jeecg.common.execption.OpenAlertException;
|
||||
import com.zhgd.jeecg.common.system.query.QueryGenerator;
|
||||
import com.zhgd.xmgl.modules.baotou.entity.ProjectFileAuth;
|
||||
import com.zhgd.xmgl.modules.baotou.mapper.ProjectFileAuthMapper;
|
||||
import com.zhgd.xmgl.modules.baotou.service.IProjectFileAuthService;
|
||||
import com.zhgd.xmgl.modules.basicdata.enums.SystemUserAccountTypeEnum;
|
||||
import com.zhgd.xmgl.modules.file.entity.ProjectFile;
|
||||
import com.zhgd.xmgl.modules.file.mapper.ProjectFileMapper;
|
||||
@ -17,15 +20,14 @@ import com.zhgd.xmgl.util.MessageUtil;
|
||||
import com.zhgd.xmgl.util.RefUtil;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Description: 项目文件档案
|
||||
@ -40,6 +42,9 @@ public class ProjectFileServiceImpl extends ServiceImpl<ProjectFileMapper, Proje
|
||||
private ProjectFileMapper projectFileMapper;
|
||||
@Autowired
|
||||
private ProjectFileAuthMapper projectFileAuthMapper;
|
||||
@Lazy
|
||||
@Autowired
|
||||
private IProjectFileAuthService projectFileAuthService;
|
||||
|
||||
@Override
|
||||
public void addProjectFile(ProjectFile projectFile) {
|
||||
@ -60,7 +65,37 @@ public class ProjectFileServiceImpl extends ServiceImpl<ProjectFileMapper, Proje
|
||||
projectFile.setUploadTime(df.format(new Date()));
|
||||
projectFileMapper.insert(projectFile);
|
||||
|
||||
if (SecurityUtils.getUser() != null) {
|
||||
setAuth(projectFile);
|
||||
}
|
||||
|
||||
/**
|
||||
* 上传文件设置相关权限
|
||||
*
|
||||
* @param userFile
|
||||
*/
|
||||
@Override
|
||||
public void setAuth(ProjectFile userFile) {
|
||||
List<ProjectFileAuth> auths = new LinkedList<>();
|
||||
if (!userFile.getFilePath().equals("/")) {
|
||||
//上传文件分配上级文件夹的权限
|
||||
String[] splitPath = userFile.getFilePath().split("/");
|
||||
ProjectFile parent = this.getOne(new LambdaQueryWrapper<ProjectFile>()
|
||||
.eq(ProjectFile::getFilePath, StringUtils.substringBeforeLast(StringUtils.substringBeforeLast(userFile.getFilePath(), "/"), "/") + "/")
|
||||
.eq(ProjectFile::getFileName, splitPath[splitPath.length - 1])
|
||||
.eq(ProjectFile::getProjectSn, userFile.getProjectSn())
|
||||
.eq(ProjectFile::getIsDir, 1)
|
||||
);
|
||||
if (parent != null) {
|
||||
List<ProjectFileAuth> parentAuths = projectFileAuthService.list(new LambdaQueryWrapper<ProjectFileAuth>()
|
||||
.eq(ProjectFileAuth::getProjectFileId, parent.getFileId()));
|
||||
parentAuths.forEach(o -> {
|
||||
o.setId(null);
|
||||
o.setProjectFileId(userFile.getFileId());
|
||||
});
|
||||
auths.addAll(parentAuths);
|
||||
}
|
||||
} else if (SecurityUtils.getUser() != null) {
|
||||
//上传顶级的文件
|
||||
if (Objects.equals(SystemUserAccountTypeEnum.PROJECT_SUB_ACCOUNT.getValue(), SecurityUtils.getUser().getAccountType())) {
|
||||
Long userId = SecurityUtils.getUser().getUserId();
|
||||
ProjectFileAuth auth = new ProjectFileAuth();
|
||||
@ -73,12 +108,15 @@ public class ProjectFileServiceImpl extends ServiceImpl<ProjectFileMapper, Proje
|
||||
auth.setIsRename(1);
|
||||
auth.setIsDownload(1);
|
||||
auth.setIsView(1);
|
||||
auth.setProjectFileId(projectFile.getFileId());
|
||||
auth.setProjectFileId(userFile.getFileId());
|
||||
auth.setUserId(userId);
|
||||
auth.setProjectSn(projectFile.getProjectSn());
|
||||
projectFileAuthMapper.insert(auth);
|
||||
auth.setProjectSn(userFile.getProjectSn());
|
||||
auths.add(auth);
|
||||
}
|
||||
}
|
||||
if (CollUtil.isNotEmpty(auths)) {
|
||||
projectFileAuthService.saveBatch(auths);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -125,16 +163,24 @@ public class ProjectFileServiceImpl extends ServiceImpl<ProjectFileMapper, Proje
|
||||
|
||||
@Override
|
||||
public void deleteFile(ProjectFile projectFile) {
|
||||
ProjectFile oldProjectFile = projectFileMapper.selectById(projectFile.getFileId());
|
||||
Long fileId = projectFile.getFileId();
|
||||
ProjectFile oldProjectFile = projectFileMapper.selectById(fileId);
|
||||
if (1 == oldProjectFile.getIsDir()) {
|
||||
String filePath = oldProjectFile.getFilePath() + oldProjectFile.getFileName() + "/";
|
||||
QueryWrapper<ProjectFile> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.lambda().eq(ProjectFile::getProjectSn, oldProjectFile.getProjectSn())
|
||||
.likeRight(ProjectFile::getFilePath, filePath);
|
||||
List<Long> fileIds = projectFileMapper.selectList(queryWrapper).stream().map(ProjectFile::getFileId).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(fileIds)) {
|
||||
projectFileAuthService.remove(new LambdaQueryWrapper<ProjectFileAuth>()
|
||||
.in(ProjectFileAuth::getProjectFileId, fileIds));
|
||||
}
|
||||
projectFileMapper.delete(queryWrapper);
|
||||
projectFileMapper.deleteById(projectFile.getFileId());
|
||||
projectFileMapper.deleteById(fileId);
|
||||
} else {
|
||||
projectFileMapper.deleteById(projectFile.getFileId());
|
||||
projectFileAuthService.remove(new LambdaQueryWrapper<ProjectFileAuth>()
|
||||
.eq(ProjectFileAuth::getProjectFileId, fileId));
|
||||
projectFileMapper.deleteById(fileId);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -647,9 +647,13 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
workerInfoMapper.update(null, new LambdaUpdateWrapper<WorkerInfo>()
|
||||
.set(WorkerInfo::getProjectGroup, workerInfo.getProjectGroup())
|
||||
.eq(WorkerInfo::getId, workerInfo.getId())
|
||||
);
|
||||
workerInfoMapper.updateById(workerInfo);
|
||||
workerAdmissionDetailService.update(new LambdaUpdateWrapper<WorkerAdmissionDetail>()
|
||||
.set(WorkerAdmissionDetail::getProjectGroup, workerInfo.getProjectGroup())
|
||||
.set(WorkerAdmissionDetail::getIdCard, workerInfo.getIdCard())
|
||||
.set(WorkerAdmissionDetail::getWorkerName, workerInfo.getWorkerName())
|
||||
.eq(WorkerAdmissionDetail::getId, workerInfo.getWorkerAdmissionDetailId())
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user