Browse Source

Merge branch 'pt' of dd.tall.wiki:ccsens_wiki/ccsenscloud into pt

recovery
zy_Java 4 years ago
parent
commit
259c512740
  1. 85
      tall/src/main/java/com/ccsens/tall/bean/vo/MessageVo.java
  2. 4
      tall/src/main/java/com/ccsens/tall/bean/vo/ProjectMessageVo.java
  3. 17
      tall/src/main/java/com/ccsens/tall/bean/vo/RoleVo.java
  4. 4
      tall/src/main/java/com/ccsens/tall/service/ExcelService.java
  5. 2
      tall/src/main/java/com/ccsens/tall/service/IInputDocService.java
  6. 2
      tall/src/main/java/com/ccsens/tall/service/IProMemberService.java
  7. 6
      tall/src/main/java/com/ccsens/tall/service/IProRoleService.java
  8. 2
      tall/src/main/java/com/ccsens/tall/service/IProjectService.java
  9. 68
      tall/src/main/java/com/ccsens/tall/service/IRobotService.java
  10. 2
      tall/src/main/java/com/ccsens/tall/service/ITaskDeliverService.java
  11. 88
      tall/src/main/java/com/ccsens/tall/service/InputDocService.java
  12. 15
      tall/src/main/java/com/ccsens/tall/service/ProMemberService.java
  13. 48
      tall/src/main/java/com/ccsens/tall/service/ProRoleService.java
  14. 11
      tall/src/main/java/com/ccsens/tall/service/ProjectService.java
  15. 282
      tall/src/main/java/com/ccsens/tall/service/RobotService.java
  16. 39
      tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java
  17. 114
      tall/src/main/java/com/ccsens/tall/util/WxTemplateUtil.java
  18. 3
      tall/src/main/java/com/ccsens/tall/web/DeliverController.java
  19. 2
      tall/src/main/java/com/ccsens/tall/web/ExcelController.java
  20. 3
      tall/src/main/java/com/ccsens/tall/web/InputDocController.java
  21. 3
      tall/src/main/java/com/ccsens/tall/web/ProjectController.java
  22. 2
      tall/src/main/java/com/ccsens/tall/web/RoleController.java
  23. 6
      tall/src/main/resources/mapper_dao/ProDeliverHistoryRecordDao.xml
  24. 6
      tcm/src/main/java/com/ccsens/tcm/service/OcrService.java
  25. 51
      util/src/main/java/com/ccsens/util/baidu/BaiDuUtil.java

85
tall/src/main/java/com/ccsens/tall/bean/vo/MessageVo.java

@ -292,4 +292,89 @@ public class MessageVo {
.appendMessage(new MessageVo.Message(WebConstant.TemplateParam.RoleName.value,roleName));
return inform;
}
/**
* 修改角色
*/
public static Inform updateRoleComment(Long userId,String userName,Long projectId,String projectName,String roleName) {
MessageVo.Inform inform = new MessageVo.Inform(projectId, userId);
inform.appendMessage(new MessageVo.Message(WebConstant.TemplateParam.Operator.value, userName))
.appendMessage(new MessageVo.Message(WebConstant.TemplateParam.ProjectName.value, projectName, WebConstant.Message.TYPE_LINK, Message.getProjectSettings(projectId)))
.appendMessage(new MessageVo.Message(WebConstant.TemplateParam.RoleName.value,roleName));
return inform;
}
/**
* 删除角色
*/
public static Inform delRoleComment(Long userId,String userName,Long projectId,String projectName,String roleName) {
MessageVo.Inform inform = new MessageVo.Inform(projectId, userId);
inform.appendMessage(new MessageVo.Message(WebConstant.TemplateParam.Operator.value, userName))
.appendMessage(new MessageVo.Message(WebConstant.TemplateParam.ProjectName.value, projectName, WebConstant.Message.TYPE_LINK, Message.getProjectSettings(projectId)))
.appendMessage(new MessageVo.Message(WebConstant.TemplateParam.RoleName.value,roleName));
return inform;
}
/**
* 添加成员
*/
public static Inform saveMember(Long userId,String userName,Long projectId,String projectName,String memberName) {
MessageVo.Inform inform = new MessageVo.Inform(projectId, userId);
inform.appendMessage(new MessageVo.Message(WebConstant.TemplateParam.Operator.value, userName))
.appendMessage(new MessageVo.Message(WebConstant.TemplateParam.ProjectName.value, projectName, WebConstant.Message.TYPE_LINK, Message.getProjectSettings(projectId)))
.appendMessage(new MessageVo.Message(WebConstant.TemplateParam.MemberName.value,memberName));
return inform;
}
/**
* 删除成员
*/
public static Inform delMember(Long userId,String userName,Long projectId,String projectName,String memberName) {
MessageVo.Inform inform = new MessageVo.Inform(projectId, userId);
inform.appendMessage(new MessageVo.Message(WebConstant.TemplateParam.Operator.value, userName))
.appendMessage(new MessageVo.Message(WebConstant.TemplateParam.ProjectName.value, projectName, WebConstant.Message.TYPE_LINK, Message.getProjectSettings(projectId)))
.appendMessage(new MessageVo.Message(WebConstant.TemplateParam.MemberName.value,memberName));
return inform;
}
/**
* 修改成员
*/
public static Inform updateMember(Long userId,String userName,Long projectId,String projectName,String memberName) {
MessageVo.Inform inform = new MessageVo.Inform(projectId, userId);
inform.appendMessage(new MessageVo.Message(WebConstant.TemplateParam.Operator.value, userName))
.appendMessage(new MessageVo.Message(WebConstant.TemplateParam.ProjectName.value, projectName, WebConstant.Message.TYPE_LINK, Message.getProjectSettings(projectId)))
.appendMessage(new MessageVo.Message(WebConstant.TemplateParam.MemberName.value,memberName));
return inform;
}
/**
* 添加项目
*/
public static Inform saveWbs(Long userId,String userName,Long projectId,String projectName) {
MessageVo.Inform inform = new MessageVo.Inform(projectId, userId);
inform.appendMessage(new MessageVo.Message(WebConstant.TemplateParam.Operator.value, userName))
.appendMessage(new MessageVo.Message(WebConstant.TemplateParam.ProjectName.value, projectName, WebConstant.Message.TYPE_LINK, Message.getProjectSettings(projectId)));
return inform;
}
/**
* 修改项目
*/
public static Inform updateProject(Long userId,String userName,Long projectId,String projectName) {
MessageVo.Inform inform = new MessageVo.Inform(projectId, userId);
inform.appendMessage(new MessageVo.Message(WebConstant.TemplateParam.Operator.value, userName))
.appendMessage(new MessageVo.Message(WebConstant.TemplateParam.ProjectName.value, projectName, WebConstant.Message.TYPE_LINK, Message.getProjectSettings(projectId)));
return inform;
}
/**
* 删除项目
*/
public static Inform delProject(Long userId,String userName,Long projectId,String projectName) {
MessageVo.Inform inform = new MessageVo.Inform(projectId, userId);
inform.appendMessage(new MessageVo.Message(WebConstant.TemplateParam.Operator.value, userName))
.appendMessage(new MessageVo.Message(WebConstant.TemplateParam.ProjectName.value, projectName, WebConstant.Message.TYPE_LINK, Message.getProjectSettings(projectId)));
return inform;
}
}

4
tall/src/main/java/com/ccsens/tall/bean/vo/ProjectMessageVo.java

@ -39,7 +39,7 @@ public class ProjectMessageVo {
private Byte readStatus;
@ApiModelProperty("消息内容")
List<MessageVo.Message> messages;
@JsonFormat(pattern="yyyy-MM-dd HH:mm")
@JsonFormat(pattern="yyyy-MM-dd HH:mm",timezone="GMT+8")
@ApiModelProperty("发送时间")
private Date createTime;
}
@ -53,7 +53,7 @@ public class ProjectMessageVo {
private Long operationId;
@ApiModelProperty("消息内容")
List<MessageVo.Message> messages;
@JsonFormat(pattern="yyyy-MM-dd HH:mm")
@JsonFormat(pattern="yyyy-MM-dd HH:mm",timezone="GMT+8")
@ApiModelProperty("发送时间")
private Date createTime;
}

17
tall/src/main/java/com/ccsens/tall/bean/vo/RoleVo.java

@ -1,5 +1,6 @@
package com.ccsens.tall.bean.vo;
import com.sun.org.apache.xpath.internal.operations.Bool;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -36,8 +37,22 @@ public class RoleVo {
private String name;
@ApiModelProperty("角色排序")
private Integer sequence;
@ApiModelProperty("是否是pm 是pm;true 不是pm; false ")
@ApiModelProperty("是否是pm 是pm;true 不是pm; false")
private Boolean isPM;
@ApiModelProperty("是否是变身后 0否 1是")
private Integer imitation=0;
@ApiModelProperty("该角色是否显示")
private Boolean isShow = true;
@ApiModelProperty("当前用户是否属于该角色")
private Boolean mine;
@ApiModelProperty("是否是项目虚拟的角色 0否 1是")
private Integer projectRole=0;
@ApiModelProperty("关联项目的id")
private Integer relevanceProjectId;
@ApiModelProperty("关联项目的名称")
private Integer relevanceProjectName;
@ApiModelProperty("是否是当前角色的奖惩干系人")
private Boolean stakeholder = false;
}
@Data
@ApiModel("添加时返回成员信息")

4
tall/src/main/java/com/ccsens/tall/service/ExcelService.java

@ -87,6 +87,8 @@ public class ExcelService implements IExcelService {
private ProPluginConfigDao proPluginConfigDao;
@Resource
private ProTaskDeliverMapper proTaskDeliverMapper;
@Resource
private RobotService robotService;
@Override
@ -106,6 +108,8 @@ public class ExcelService implements IExcelService {
userAttention.setUserId(currentUserId);
userAttentionDao.insertSelective(userAttention);
}
//发送消息
robotService.saveWbsRobotSend(currentUserId,sysProject);
return selectByProjectId(currentUserId, sysProject);
}

2
tall/src/main/java/com/ccsens/tall/service/IInputDocService.java

@ -97,7 +97,7 @@ public interface IInputDocService {
* 删除输入文档下所有的文件
* @param param 输入文档id
*/
void delAllRecordOfTask(InputDocDto.DelAllRecordOfTask param,Long userId);
void delAllRecordOfTask(InputDocDto.DelAllRecordOfTask param,Long userId) throws Exception;
/**
* 查看交付物的历史记录

2
tall/src/main/java/com/ccsens/tall/service/IProMemberService.java

@ -46,7 +46,7 @@ public interface IProMemberService {
* @param currentUserId userId
* @param deleteMember 被删除的成员的id
*/
void deleteMember(Long currentUserId, MemberDto.DeleteMember deleteMember);
void deleteMember(Long currentUserId, MemberDto.DeleteMember deleteMember) throws Exception;
/**
* 修改成员的信息

6
tall/src/main/java/com/ccsens/tall/service/IProRoleService.java

@ -40,9 +40,9 @@ public interface IProRoleService {
void deleteRoleByProjectId(Long projectId) throws Exception;
RoleVo.RoleByProjectId saveRole(Long currentUserId, RoleDto.SaveRole saveRole);
RoleVo.RoleByProjectId saveRole(Long currentUserId, RoleDto.SaveRole saveRole) throws Exception;
ProjectVo.RoleInfo updateRole(Long currentUserId, RoleDto.UpdateRole updateRole);
ProjectVo.RoleInfo updateRole(Long currentUserId, RoleDto.UpdateRole updateRole) throws Exception;
ProjectVo.RoleInfo saveMemberByRole(Long currentUserId, RoleDto.SaveMember saveMember);
@ -74,7 +74,7 @@ public interface IProRoleService {
* @param param
* @return
*/
RoleVo.JueSeByProIdLists queryRoleShows(QueryDto<RoleDto.QueryRoleShows> param);
RoleVo.JueSeByProIdLists queryRoleShows(QueryDto<RoleDto.QueryRoleShows> param) throws Exception;
void queryRoleIsShows(QueryDto<RoleDto.QueryRoleIsShows> param);

2
tall/src/main/java/com/ccsens/tall/service/IProjectService.java

@ -31,7 +31,7 @@ public interface IProjectService {
ProjectVo.ProjectInfo copyProject(Long userId, ProjectDto.ProjectIdDto projectDto,String token);
ProjectVo.ProjectInfo changeProjectInfo(Long currentUserId, ProjectDto.ProjectInfoDto projectInfoDto,String token);
ProjectVo.ProjectInfo changeProjectInfo(Long currentUserId, ProjectDto.ProjectInfoDto projectInfoDto,String token) throws Exception;
ProjectVo.ProjectAllDetailed selectByLabelName(Long currentUserId, String labelName,Integer pageSize,Integer page,String token);

68
tall/src/main/java/com/ccsens/tall/service/IRobotService.java

@ -105,6 +105,26 @@ public interface IRobotService {
*/
void addRoleRobotSend(Long currentUserId, Long projectId, String roleName,Long roleId) throws Exception;
/**
* 修改角色 消息记录
* @param currentUserId 当前用户id
* @param projectId 项目id
* @param roleName 角色名称
* @param roleId 角色id
* @throws Exception 异常
*/
void updateRoleRobotSend(Long currentUserId, Long projectId, String roleName,Long roleId) throws Exception;
/**
* 删除角色
* @param userId 用户id
* @param projectId 项目id
* @param name 角色名称
* @param id 角色id
* @throws Exception 异常
*/
void delRoleRobotSend(Long userId, Long projectId, String name, Long id) throws Exception;
/**
* 查询模板
* @param code
@ -118,5 +138,53 @@ public interface IRobotService {
*/
void sendRemindByRobot(TaskVo.RemindTask taskRemind,String content) throws Exception;
/**
* 增加成员 消息
* @param userId 当前用户id
* @param projectId 项目id
* @param memberName 成员名称
* @param id 成员id
*/
void saveMemberRobotSend(Long userId, Long projectId, String memberName, Long id) throws Exception;
/**
* 删除成员
* @param userId 当前用户id
* @param projectId 项目id
* @param memberName 成员名称
* @param id 成员id
*/
void delMemberRobotSend(Long userId, Long projectId, String memberName, Long id) throws Exception;
/**
* 修改成员
* @param userId 当前用户id
* @param projectId 项目id
* @param memberName 成员名称
* @param id 成员id
*/
void updateMemberRobotSend(Long userId, Long projectId, String memberName, Long id) throws Exception;
/**
* 添加项目
* @param currentUserId 当前登录用户
* @param sysProject 项目信息
* @throws Exception 异常
*/
void saveWbsRobotSend(Long currentUserId,SysProject sysProject) throws Exception;
/**
* 修改i项目
* @param currentUserId 当前登录用户id
* @param sysProject 项目信息
* @throws Exception 异常
*/
void updateProjectRobotSend(Long currentUserId,SysProject sysProject) throws Exception;
/**
* 删除项目
* @param currentUserId 当前登录用户id
* @param projectId 项目id
*/
void delProjectRobotSend(Long currentUserId,Long projectId) throws Exception;
}

2
tall/src/main/java/com/ccsens/tall/service/ITaskDeliverService.java

@ -45,7 +45,7 @@ public interface ITaskDeliverService {
* 删除输出文档下所有的文件
* @param param
*/
void delAllFileOfDeliver(DeliverDto.DelAllFileOfDeliver param,Long userId);
void delAllFileOfDeliver(DeliverDto.DelAllFileOfDeliver param,Long userId) throws Exception;
/**
* 修改输出文档下的备注信息

88
tall/src/main/java/com/ccsens/tall/service/InputDocService.java

@ -617,7 +617,7 @@ public class InputDocService implements IInputDocService {
* @param param 输入文档id
*/
@Override
public void delAllRecordOfTask(InputDocDto.DelAllRecordOfTask param,Long userId) {
public void delAllRecordOfTask(InputDocDto.DelAllRecordOfTask param,Long userId) throws Exception {
ProTaskInputRecordExample example = new ProTaskInputRecordExample();
example.createCriteria().andInputDocIdEqualTo(param.getDocId()).andRecStatusEqualTo((byte)0);
List<ProTaskInputRecord> records = proTaskInputRecordMapper.selectByExample(example);
@ -626,7 +626,7 @@ public class InputDocService implements IInputDocService {
example2.createCriteria().andInputDocIdEqualTo(param.getDocId());
ProTaskInputRecord proTaskInputRecord = new ProTaskInputRecord();
proTaskInputRecord.setRecStatus((byte)2);
proTaskInputRecordMapper.updateByExampleSelective(proTaskInputRecord,example2);
//文档 改回未上传状态
ProTaskInputDoc doc = new ProTaskInputDoc();
@ -636,22 +636,24 @@ public class InputDocService implements IInputDocService {
//将操作保存到历史信息记录表
//查找项目id
try {
ProTaskDetail taskDetail = proTaskDetailMapper.selectByPrimaryKey(doc.getTaskDetailId());
ProMember proMember = iProMemberService.selectByUserId(userId, taskDetail.getProjectId());
//将操作记录添加到历史记录表中
ProDeliverHistoryRecord historyRecord = new ProDeliverHistoryRecord();
historyRecord.setId(snowflake.nextId());
historyRecord.setDeliverId(doc.getId());
historyRecord.setDeliverType((byte)0);
historyRecord.setDoType((byte)6);
historyRecord.setMemberId(proMember.getId());
deliverHistoryRecordDao.insertSelective(historyRecord);
}catch (Exception e){
log.info("删除输入文档下所有文件记录",e);
ProTaskInputDoc inputDoc = proTaskInputDocMapper.selectByPrimaryKey(doc.getId());
ProTaskDetail taskDetail = proTaskDetailMapper.selectByPrimaryKey(inputDoc.getTaskDetailId());
ProMember proMember = iProMemberService.selectByUserId(userId, taskDetail.getProjectId());
//将操作记录添加到历史记录表中
ProDeliverHistoryRecord historyRecord = new ProDeliverHistoryRecord();
historyRecord.setId(snowflake.nextId());
historyRecord.setDeliverId(doc.getId());
historyRecord.setDeliverType((byte)0);
historyRecord.setDoType((byte)6);
historyRecord.setMemberId(proMember.getId());
deliverHistoryRecordDao.insertSelective(historyRecord);
//发送消息
if (ObjectUtil.isNotNull(taskDetail)){
robotService.delDocRobotSend(userId,taskDetail,inputDoc.getName());
}
proTaskInputRecordMapper.updateByExampleSelective(proTaskInputRecord,example2);
}
}
@ -683,19 +685,19 @@ public class InputDocService implements IInputDocService {
deliverHistory.setFileList(fileList);
}
}
}
}else{
if (StrUtil.isNotBlank(deliverHistory.getFileIds())){
List<String> idList = new ArrayList<>();
idList.add(deliverHistory.getFileIds());
//获取文件项目的路径
String requestUrl = PropUtil.filedeal;
//通过文件id查询文件信息
String c = RestTemplateUtil.postBody1(requestUrl, idList);
JsonResponse<List<FileVo.FilePosition>> a = JSONObject.parseObject(c, JsonResponse.class);
if (ObjectUtil.isNotNull(a) && ObjectUtil.isNotNull(a.getData())) {
List<FileVo.FilePosition> fileList = a.getData();
deliverHistory.setFileList(fileList);
}else{
if (StrUtil.isNotBlank(deliverHistory.getFileIds())){
List<String> idList = new ArrayList<>();
idList.add(deliverHistory.getFileIds());
//获取文件项目的路径
String requestUrl = PropUtil.filedeal;
//通过文件id查询文件信息
String c = RestTemplateUtil.postBody1(requestUrl, idList);
JsonResponse<List<FileVo.FilePosition>> a = JSONObject.parseObject(c, JsonResponse.class);
if (ObjectUtil.isNotNull(a) && ObjectUtil.isNotNull(a.getData())) {
List<FileVo.FilePosition> fileList = a.getData();
deliverHistory.setFileList(fileList);
}
}
}
}
@ -723,19 +725,19 @@ public class InputDocService implements IInputDocService {
deliverHistory.setFileList(fileList);
}
}
}
}else{
if (StrUtil.isNotBlank(deliverHistory.getFileIds())){
List<String> idList = new ArrayList<>();
idList.add(deliverHistory.getFileIds());
//获取文件项目的路径
String requestUrl = PropUtil.filedeal;
//通过文件id查询文件信息
String c = RestTemplateUtil.postBody1(requestUrl, idList);
JsonResponse<List<FileVo.FilePosition>> a = JSONObject.parseObject(c, JsonResponse.class);
if (ObjectUtil.isNotNull(a) && ObjectUtil.isNotNull(a.getData())) {
List<FileVo.FilePosition> fileList = a.getData();
deliverHistory.setFileList(fileList);
}else {
if (StrUtil.isNotBlank(deliverHistory.getFileIds())){
List<String> idList = new ArrayList<>();
idList.add(deliverHistory.getFileIds());
//获取文件项目的路径
String requestUrl = PropUtil.filedeal;
//通过文件id查询文件信息
String c = RestTemplateUtil.postBody1(requestUrl, idList);
JsonResponse<List<FileVo.FilePosition>> a = JSONObject.parseObject(c, JsonResponse.class);
if (ObjectUtil.isNotNull(a) && ObjectUtil.isNotNull(a.getData())) {
List<FileVo.FilePosition> fileList = a.getData();
deliverHistory.setFileList(fileList);
}
}
}
}

15
tall/src/main/java/com/ccsens/tall/service/ProMemberService.java

@ -54,6 +54,8 @@ public class ProMemberService implements IProMemberService {
private UserAttentionDao userAttentionDao;
@Resource
private SysImitationMapper imitationMapper;
@Resource
private RobotService robotService;
@Override
@ -339,6 +341,10 @@ public class ProMemberService implements IProMemberService {
userAttentionDao.insertSelective(userAttention);
}
}
//发送系统消息
robotService.saveMemberRobotSend(currentUserId,saveMember.getProjectId(),saveMember.getMemberName(),proMember.getId());
} else {
throw new BaseException(CodeEnum.NOT_POWER);
}
@ -346,7 +352,7 @@ public class ProMemberService implements IProMemberService {
}
@Override
public void deleteMember(Long currentUserId, MemberDto.DeleteMember deleteMember) {
public void deleteMember(Long currentUserId, MemberDto.DeleteMember deleteMember) throws Exception {
//查找要删除的成员
ProMember proMember = proMemberDao.selectByPrimaryKey(deleteMember.getMemberId());
if (ObjectUtil.isNull(proMember)) {
@ -357,6 +363,10 @@ public class ProMemberService implements IProMemberService {
if (power < 2) {
throw new BaseException(CodeEnum.NOT_POWER);
}
//发送系统消息
robotService.delMemberRobotSend(currentUserId,proMember.getProjectId(),proMember.getNickname(),proMember.getId());
//修改成员状态来删除
proMember.setRecStatus((byte) 2);
proMemberDao.updateByPrimaryKeySelective(proMember);
@ -442,6 +452,9 @@ public class ProMemberService implements IProMemberService {
proMember.setStakeholderId(stakeholderId);
// }
proMemberDao.updateByPrimaryKeySelective(proMember);
//发送系统消息
robotService.updateMemberRobotSend(currentUserId,proMember.getProjectId(),proMember.getNickname(),proMember.getId());
//查找被修改的成员的信息并返回
return proMemberDao.getMemberInfoByMemberId(updateMemberInfo.getMemberId());
}

48
tall/src/main/java/com/ccsens/tall/service/ProRoleService.java

@ -471,7 +471,7 @@ public class ProRoleService implements IProRoleService {
* 删除角色
*/
@Override
public void deleteRole(Long userId, Long roleId) {
public void deleteRole(Long userId, Long roleId) throws Exception {
ProRole role = proRoleDao.selectByPrimaryKey(roleId);
//TODO 项目经理不能被删除
Integer i = proRoleDao.isPmByRoleId(roleId);
@ -484,6 +484,9 @@ public class ProRoleService implements IProRoleService {
if (ObjectUtil.isNotNull(role)) {
int power = selectPowerByRoleName(userId, role.getProjectId());
if (power > 1) {
//发送系统消息
robotService.delRoleRobotSend(userId,role.getProjectId(),role.getName(),role.getId());
//修改删除状态
role.setRecStatus(WebConstant.REC_STATUS.Deleted.value);
proRoleDao.updateByPrimaryKeySelective(role);
@ -557,7 +560,7 @@ public class ProRoleService implements IProRoleService {
@Override
public RoleVo.RoleByProjectId saveRole(Long currentUserId, RoleDto.SaveRole saveRole) {
public RoleVo.RoleByProjectId saveRole(Long currentUserId, RoleDto.SaveRole saveRole) throws Exception {
//检查操作者的权限
int power = selectPowerByRoleName(currentUserId, saveRole.getProjectId());
if (power < 2) {
@ -583,16 +586,12 @@ public class ProRoleService implements IProRoleService {
roleInfo.setRoleName(role.getName());
//发送系统消息
try {
robotService.addRoleRobotSend(currentUserId,saveRole.getProjectId(),saveRole.getRoleName(),roleInfo.getRoleId());
}catch (Exception e){
log.info("发送系统消息异常",e);
}
robotService.addRoleRobotSend(currentUserId,saveRole.getProjectId(),saveRole.getRoleName(),roleInfo.getRoleId());
return roleInfo;
}
@Override
public ProjectVo.RoleInfo updateRole(Long currentUserId, RoleDto.UpdateRole updateRole) {
public ProjectVo.RoleInfo updateRole(Long currentUserId, RoleDto.UpdateRole updateRole) throws Exception {
//查找角色
ProRole proRole = proRoleDao.selectByPrimaryKey(updateRole.getRoleId());
if (ObjectUtil.isNull(proRole)) {
@ -620,6 +619,9 @@ public class ProRoleService implements IProRoleService {
}
}
proRoleDao.updateByPrimaryKeySelective(proRole);
//发送系统消息
robotService.updateRoleRobotSend(currentUserId,proRole.getProjectId(),updateRole.getRoleName(),updateRole.getRoleId());
return getRoleInfoByRoleId(proRole.getId());
}
@ -752,7 +754,7 @@ public class ProRoleService implements IProRoleService {
}
@Override
public RoleVo.JueSeByProIdLists queryRoleShows(QueryDto<RoleDto.QueryRoleShows> param) {
public RoleVo.JueSeByProIdLists queryRoleShows(QueryDto<RoleDto.QueryRoleShows> param) throws Exception {
RoleVo.JueSeByProIdLists jueSeByProIdLists=new RoleVo.JueSeByProIdLists();
//获取成员id
Long memberId = queryMemberId(param.getParam().getProjectId(), param.getUserId());
@ -767,18 +769,46 @@ public class ProRoleService implements IProRoleService {
List<ProRole> proRoles = proRoleMapper.selectByExample(proRoleExample1);
List<Long> jili1=proRoles.stream().map(action->action.getId()).collect(Collectors.toList());
//获取用户在项目中的角色
List<ProRole> roleList = proMemberService.selectRolesByUserIdAndProjectId(param.getUserId(), param.getParam().getProjectId(), 0);
//查询已经添加的角色
List<RoleVo.JueSeByProId> listBefor=proRoleDao.queryRoleShowslistAfter(memberId);
List<Long> listBeforeId= listBefor.stream().map(action ->{return action.getId();}).collect(Collectors.toList());
for (int i = 0; i < listBefor.size(); i++) {
//是否项目经理
if(jili1.contains(listBefor.get(i).getId())){
listBefor.get(i).setIsPM(true);
}else {
listBefor.get(i).setIsPM(false);
}
//当前用户是否属于该角色
for (ProRole proRole : roleList) {
if (listBefor.get(i).getId().equals(proRole.getId())){
listBefor.get(i).setMine(true);
}else{
listBefor.get(i).setMine(false);
}
}
}
//查询未添加的角色
List<RoleVo.JueSeByProId> listAfter=proRoleDao.queryRoleShowslistBefore(param.getParam().getProjectId(),listBeforeId);
for (int i = 0; i < listAfter.size(); i++) {
//是否项目经理
if(jili1.contains(listBefor.get(i).getId())){
listBefor.get(i).setIsPM(true);
}else {
listBefor.get(i).setIsPM(false);
}
//当前用户是否属于该角色
for (ProRole proRole : roleList) {
if (listBefor.get(i).getId().equals(proRole.getId())){
listBefor.get(i).setMine(true);
}else{
listBefor.get(i).setMine(false);
}
}
}
jueSeByProIdLists.setListAfter(listAfter);
jueSeByProIdLists.setListBefore(listBefor);
return jueSeByProIdLists;

11
tall/src/main/java/com/ccsens/tall/service/ProjectService.java

@ -80,6 +80,8 @@ public class ProjectService implements IProjectService {
private SysAuthDao sysAuthDao;
@Resource
private SysProjectLabelDao sysProjectLabelDao;
@Resource
private RobotService robotService;
@Override
@ -576,11 +578,14 @@ public class ProjectService implements IProjectService {
proRoleDao.updateByPrimaryKeySelective(role);
});
}
//发送消息
robotService.delProjectRobotSend(currentUserId,projectId);
//修改项目状态
project.setRecStatus(WebConstant.REC_STATUS.Deleted.value);
sysProjectDao.updateByPrimaryKeySelective(project);
} else {
throw new BaseException(CodeEnum.NOT_POWER);
}
@ -892,7 +897,7 @@ public class ProjectService implements IProjectService {
* 修改项目信息
*/
@Override
public ProjectVo.ProjectInfo changeProjectInfo(Long currentUserId, ProjectDto.ProjectInfoDto projectInfoDto,String token) {
public ProjectVo.ProjectInfo changeProjectInfo(Long currentUserId, ProjectDto.ProjectInfoDto projectInfoDto,String token) throws Exception {
//查找项目
SysProject project = sysProjectDao.selectByPrimaryKey(projectInfoDto.getId());
if (ObjectUtil.isNotNull(project)) {
@ -935,6 +940,8 @@ public class ProjectService implements IProjectService {
project.setHighlight(projectInfoDto.getHighlight());
}
sysProjectDao.updateByPrimaryKeySelective(project);
//发送消息
robotService.updateProjectRobotSend(currentUserId,project);
} else {
throw new BaseException(CodeEnum.NOT_POWER);

282
tall/src/main/java/com/ccsens/tall/service/RobotService.java

@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.ccsens.tall.bean.po.*;
import com.ccsens.tall.bean.vo.MessageVo;
import com.ccsens.tall.bean.vo.ProjectVo;
import com.ccsens.tall.bean.vo.TaskVo;
import com.ccsens.tall.persist.dao.*;
import com.ccsens.tall.util.RobotUtil;
@ -59,7 +60,7 @@ public class RobotService implements IRobotService{
public void robotMessage(OperateType operateType,RobotUtil.Message message){
//获取机器人信息
SysProjectRobotExample sysProjectRobotExample = new SysProjectRobotExample();
sysProjectRobotExample.createCriteria().andProjectIdEqualTo( message.getProjectId());
sysProjectRobotExample.createCriteria().andProjectIdEqualTo(message.getProjectId());
List<SysProjectRobot> sysProjectRobotList = sysProjectRobotDao.selectByExample(sysProjectRobotExample);
if(CollectionUtil.isNotEmpty(sysProjectRobotList)){
sysProjectRobotList.forEach(sysProjectRobot -> {
@ -141,6 +142,23 @@ public class RobotService implements IRobotService{
return memberPhone;
}
private String[] getMemberPhonesByProject(Long projectId) throws Exception {
String[] memberPhone = new String[]{};
List<ProjectVo.MembersByProject> memberList = proMemberService.selectMembersByProjectId(projectId);
if(CollectionUtil.isNotEmpty(memberList)){
String[] phones = new String[memberList.size()];
AtomicInteger i = new AtomicInteger(0);
memberList.forEach(proMember -> {
if(StrUtil.isNotEmpty(proMember.getPhone())) {
phones[i.get()] = proMember.getPhone();
i.set(i.get() + 1);
}
});
memberPhone = phones;
}
return memberPhone;
}
@Override
public void finishTaskRobotSend(Long currentUserId,Long projectId, String projectName, String taskName,Long executorRoleId , int completedStatus) throws Exception {
String userName = userService.getUserNameByUserId(currentUserId);
@ -300,11 +318,15 @@ public class RobotService implements IRobotService{
public void deleteDeliverRobotSend(Long currentUserId, String deliverName, Long subTimeId) throws Exception {
String userName = userService.getUserNameByUserId(currentUserId);
String projectName = "";
ProTaskDetail taskDetail = null;
ProTaskSubTime proTaskSubTime = taskSubTimeDao.selectByPrimaryKey(subTimeId);
if(ObjectUtil.isNull(proTaskSubTime)){
throw new BaseException(CodeEnum.NOT_TASK);
// throw new BaseException(CodeEnum.NOT_TASK);
taskDetail = taskDetailDao.selectByPrimaryKey(subTimeId);
}else {
taskDetail = taskDetailDao.selectByPrimaryKey(proTaskSubTime.getTaskDetailId());
}
ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(proTaskSubTime.getTaskDetailId());
if(ObjectUtil.isNull(taskDetail)){
throw new BaseException(CodeEnum.NOT_TASK);
}
@ -576,7 +598,259 @@ public class RobotService implements IRobotService{
MessageVo.Inform inform = MessageVo.addRoleComment(currentUserId, userName, project.getId(), project.getName(),roleName);
RobotUtil.setInform(inform);
// 添加wx消息通知
RobotUtil.setWxTemplate(WxTemplateUtil.addRoleRemark(project.getId(), userName,project.getName(),roleName));
RobotUtil.setWxTemplate(WxTemplateUtil.addRole(project.getId(), userName,project.getName(),roleName));
}
/**
*修改角色 系统消息
*/
@Override
public void updateRoleRobotSend(Long currentUserId, Long projectId, String roleName,Long roleId) throws Exception {
String userName = userService.getUserNameByUserId(currentUserId);
String projectName = "";
SysProject project = sysProjectDao.selectByPrimaryKey(projectId);
if (ObjectUtil.isNotNull(project)){
projectName = project.getName();
}
//生成消息
RobotUtil.Message message = new RobotUtil.Message(project.getId());
message.appendParams(
new MessageVo.Message(WebConstant.TemplateParam.Operator.value,userName),
new MessageVo.Message(WebConstant.TemplateParam.ProjectName.value,projectName),
new MessageVo.Message(WebConstant.TemplateParam.RoleName.value,roleName)
);
//获取角色内成员的手机号
String[] memberPhone = getMemberPhonesByRoleId(roleId);
if(memberPhone.length != 0){
message.appendMentionedMobileList(memberPhone);
}
RobotUtil.setRobotMessage(message);
MessageVo.Inform inform = MessageVo.updateRoleComment(currentUserId, userName, project.getId(), project.getName(),roleName);
RobotUtil.setInform(inform);
// 添加wx消息通知
RobotUtil.setWxTemplate(WxTemplateUtil.updateRole(project.getId(), userName,project.getName(),roleName));
}
/**
*删除角色 系统消息
*/
@Override
public void delRoleRobotSend(Long userId, Long projectId, String name, Long id) throws Exception {
String userName = userService.getUserNameByUserId(userId);
String projectName = "";
SysProject project = sysProjectDao.selectByPrimaryKey(projectId);
if (ObjectUtil.isNotNull(project)){
projectName = project.getName();
}
//生成消息
RobotUtil.Message message = new RobotUtil.Message(project.getId());
message.appendParams(
new MessageVo.Message(WebConstant.TemplateParam.Operator.value,userName),
new MessageVo.Message(WebConstant.TemplateParam.ProjectName.value,projectName),
new MessageVo.Message(WebConstant.TemplateParam.RoleName.value,name)
);
//获取角色内成员的手机号
String[] memberPhone = getMemberPhonesByRoleId(id);
if(memberPhone.length != 0){
message.appendMentionedMobileList(memberPhone);
}
RobotUtil.setRobotMessage(message);
MessageVo.Inform inform = MessageVo.delRoleComment(userId, userName, project.getId(), project.getName(),name);
RobotUtil.setInform(inform);
// 添加wx消息通知
RobotUtil.setWxTemplate(WxTemplateUtil.delRole(project.getId(), userName,project.getName(),name));
}
/**
*添加成员 系统消息
*/
@Override
public void saveMemberRobotSend(Long userId, Long projectId, String memberName, Long id) throws Exception {
String userName = userService.getUserNameByUserId(userId);
String projectName = "";
SysProject project = sysProjectDao.selectByPrimaryKey(projectId);
if (ObjectUtil.isNotNull(project)){
projectName = project.getName();
}
//生成消息
RobotUtil.Message message = new RobotUtil.Message(project.getId());
message.appendParams(
new MessageVo.Message(WebConstant.TemplateParam.Operator.value,userName),
new MessageVo.Message(WebConstant.TemplateParam.ProjectName.value,projectName),
new MessageVo.Message(WebConstant.TemplateParam.MemberName.value,memberName)
);
//获取角色内成员的手机号(给项目中所有成员发送消息)
String[] memberPhone = getMemberPhonesByProject(projectId);
if(memberPhone.length != 0){
message.appendMentionedMobileList(memberPhone);
}
RobotUtil.setRobotMessage(message);
MessageVo.Inform inform = MessageVo.saveMember(userId, userName, project.getId(), project.getName(),memberName);
RobotUtil.setInform(inform);
// 添加wx消息通知
RobotUtil.setWxTemplate(WxTemplateUtil.saveMember(project.getId(), userName,project.getName(),memberName));
}
/**
*删除成员 系统消息
*/
@Override
public void delMemberRobotSend(Long userId, Long projectId, String memberName, Long id) throws Exception {
String userName = userService.getUserNameByUserId(userId);
String projectName = "";
SysProject project = sysProjectDao.selectByPrimaryKey(projectId);
if (ObjectUtil.isNotNull(project)){
projectName = project.getName();
}
//生成消息
RobotUtil.Message message = new RobotUtil.Message(project.getId());
message.appendParams(
new MessageVo.Message(WebConstant.TemplateParam.Operator.value,userName),
new MessageVo.Message(WebConstant.TemplateParam.ProjectName.value,projectName),
new MessageVo.Message(WebConstant.TemplateParam.MemberName.value,memberName)
);
//获取角色内成员的手机号
String[] memberPhone = getMemberPhonesByProject(projectId);
if(memberPhone.length != 0){
message.appendMentionedMobileList(memberPhone);
}
RobotUtil.setRobotMessage(message);
MessageVo.Inform inform = MessageVo.delMember(userId, userName, project.getId(), project.getName(),memberName);
RobotUtil.setInform(inform);
// 添加wx消息通知
RobotUtil.setWxTemplate(WxTemplateUtil.delMember(project.getId(), userName,project.getName(),memberName));
}
/**
*修改成员 系统消息
*/
@Override
public void updateMemberRobotSend(Long userId, Long projectId, String memberName, Long id) throws Exception {
String userName = userService.getUserNameByUserId(userId);
String projectName = "";
SysProject project = sysProjectDao.selectByPrimaryKey(projectId);
if (ObjectUtil.isNotNull(project)){
projectName = project.getName();
}
//生成消息
RobotUtil.Message message = new RobotUtil.Message(project.getId());
message.appendParams(
new MessageVo.Message(WebConstant.TemplateParam.Operator.value,userName),
new MessageVo.Message(WebConstant.TemplateParam.ProjectName.value,projectName),
new MessageVo.Message(WebConstant.TemplateParam.MemberName.value,memberName)
);
//获取角色内成员的手机号
String[] memberPhone = getMemberPhonesByProject(projectId);
if(memberPhone.length != 0){
message.appendMentionedMobileList(memberPhone);
}
RobotUtil.setRobotMessage(message);
MessageVo.Inform inform = MessageVo.updateMember(userId, userName, project.getId(), project.getName(),memberName);
RobotUtil.setInform(inform);
// 添加wx消息通知
RobotUtil.setWxTemplate(WxTemplateUtil.updateMember(project.getId(), userName,project.getName(),memberName));
}
/**
*添加项目 系统消息
*/
@Override
public void saveWbsRobotSend(Long currentUserId,SysProject sysProject) throws Exception {
String userName = userService.getUserNameByUserId(currentUserId);
String projectName = "";
SysProject project = sysProjectDao.selectByPrimaryKey(sysProject.getId());
if (ObjectUtil.isNotNull(project)){
projectName = project.getName();
}
//生成消息
RobotUtil.Message message = new RobotUtil.Message(project.getId());
message.appendParams(
new MessageVo.Message(WebConstant.TemplateParam.Operator.value,userName),
new MessageVo.Message(WebConstant.TemplateParam.ProjectName.value,projectName)
);
//获取角色内成员的手机号
String[] memberPhone = getMemberPhonesByProject(project.getId());
if(memberPhone.length != 0){
message.appendMentionedMobileList(memberPhone);
}
RobotUtil.setRobotMessage(message);
MessageVo.Inform inform = MessageVo.saveWbs(currentUserId,userName, project.getId(), project.getName());
RobotUtil.setInform(inform);
// 添加wx消息通知
RobotUtil.setWxTemplate(WxTemplateUtil.saveWbs(project.getId(),userName,project.getName()));
}
/**
*修改项目 系统消息
*/
@Override
public void updateProjectRobotSend(Long currentUserId,SysProject sysProject) throws Exception {
String userName = userService.getUserNameByUserId(currentUserId);
String projectName = "";
SysProject project = sysProjectDao.selectByPrimaryKey(sysProject.getId());
if (ObjectUtil.isNotNull(project)){
projectName = project.getName();
}
//生成消息
RobotUtil.Message message = new RobotUtil.Message(project.getId());
message.appendParams(
new MessageVo.Message(WebConstant.TemplateParam.Operator.value,userName),
new MessageVo.Message(WebConstant.TemplateParam.ProjectName.value,projectName)
);
//获取角色内成员的手机号
String[] memberPhone = getMemberPhonesByProject(project.getId());
if(memberPhone.length != 0){
message.appendMentionedMobileList(memberPhone);
}
RobotUtil.setRobotMessage(message);
MessageVo.Inform inform = MessageVo.updateProject(currentUserId,userName, project.getId(), project.getName());
RobotUtil.setInform(inform);
// 添加wx消息通知
RobotUtil.setWxTemplate(WxTemplateUtil.updateProject(project.getId(),userName,project.getName()));
}
/**
*删除项目 系统消息
*/
@Override
public void delProjectRobotSend(Long currentUserId,Long projectId) throws Exception {
String userName = userService.getUserNameByUserId(currentUserId);
String projectName = "";
SysProject project = sysProjectDao.selectByPrimaryKey(projectId);
if (ObjectUtil.isNotNull(project)){
projectName = project.getName();
}
//生成消息
RobotUtil.Message message = new RobotUtil.Message(project.getId());
message.appendParams(
new MessageVo.Message(WebConstant.TemplateParam.Operator.value,userName),
new MessageVo.Message(WebConstant.TemplateParam.ProjectName.value,projectName)
);
//获取角色内成员的手机号
String[] memberPhone = getMemberPhonesByProject(project.getId());
if(memberPhone.length != 0){
message.appendMentionedMobileList(memberPhone);
}
RobotUtil.setRobotMessage(message);
MessageVo.Inform inform = MessageVo.delProject(currentUserId,userName, project.getId(), project.getName());
RobotUtil.setInform(inform);
// 添加wx消息通知
RobotUtil.setWxTemplate(WxTemplateUtil.delProject(project.getId(),userName,project.getName()));
}
}

39
tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java

@ -1144,7 +1144,7 @@ public class TaskDeliverService implements ITaskDeliverService {
* @param param
*/
@Override
public void delAllFileOfDeliver(DeliverDto.DelAllFileOfDeliver param,Long userId) {
public void delAllFileOfDeliver(DeliverDto.DelAllFileOfDeliver param,Long userId) throws Exception {
ProTaskDeliverPostLogExample example = new ProTaskDeliverPostLogExample();
example.createCriteria().andDeliverIdEqualTo(param.getDeliverId());
List<ProTaskDeliverPostLog> proTaskDeliverPostLogs = deliverPostLogDao.selectByExample(example);
@ -1159,24 +1159,25 @@ public class TaskDeliverService implements ITaskDeliverService {
taskDeliver.setIsUpload(0);
taskDeliverDao.updateByPrimaryKeySelective(taskDeliver);
try {
//向交付物历史记录表中添加数据
//查找成员
ProTaskDeliver deliver = taskDeliverDao.selectByPrimaryKey(param.getDeliverId());
ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(deliver.getTaskDetailId());
ProMember proMember = iProMemberService.selectByUserId(userId, taskDetail.getProjectId());
//将操作记录添加到历史记录表中
ProDeliverHistoryRecord historyRecord = new ProDeliverHistoryRecord();
historyRecord.setId(snowflake.nextId());
historyRecord.setDeliverId(param.getDeliverId());
historyRecord.setDeliverType((byte)1);
historyRecord.setDoType((byte)6);
historyRecord.setMemberId(proMember.getId());
deliverHistoryRecordDao.insertSelective(historyRecord);
}catch (Exception e){
log.info("删除交付下所有文件",e);
}
//向交付物历史记录表中添加数据
//查找成员
ProTaskDeliver deliver = taskDeliverDao.selectByPrimaryKey(param.getDeliverId());
ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(deliver.getTaskDetailId());
ProMember proMember = iProMemberService.selectByUserId(userId, taskDetail.getProjectId());
//将操作记录添加到历史记录表中
ProDeliverHistoryRecord historyRecord = new ProDeliverHistoryRecord();
historyRecord.setId(snowflake.nextId());
historyRecord.setDeliverId(param.getDeliverId());
historyRecord.setDeliverType((byte)1);
historyRecord.setDoType((byte)6);
historyRecord.setMemberId(proMember.getId());
deliverHistoryRecordDao.insertSelective(historyRecord);
//用智能助手发送消息
robotService.deleteDeliverRobotSend(userId,deliver.getName(),taskDetail.getId());
}
}

114
tall/src/main/java/com/ccsens/tall/util/WxTemplateUtil.java

@ -225,7 +225,7 @@ public class WxTemplateUtil {
/**
* 添加角色
*/
public static WxTemplateMessage addRoleRemark(Long projectId, String userName,String projectName,String roleName) {
public static WxTemplateMessage addRole(Long projectId, String userName,String projectName,String roleName) {
WxTemplateMessage message = getWxTemplateMessage(projectId);
message.setTemplate_id(WxGzhUtil.Template.TASK_PROGRESS.templateId);
WxTemplateMessage.TemplateData data = new WxTemplateMessage.TemplateData();
@ -235,4 +235,116 @@ public class WxTemplateUtil {
message.setData(data);
return message;
}
/**
* 修改角色
*/
public static WxTemplateMessage updateRole(Long projectId, String userName,String projectName,String roleName) {
WxTemplateMessage message = getWxTemplateMessage(projectId);
message.setTemplate_id(WxGzhUtil.Template.TASK_PROGRESS.templateId);
WxTemplateMessage.TemplateData data = new WxTemplateMessage.TemplateData();
data.setFirst(new WxTemplateMessage.TemplateSettings(""));
data.setKeyword1(new WxTemplateMessage.TemplateSettings(userName + "在项目《"+projectName+"》内的修改了角色" + roleName));
data.setKeyword2(new WxTemplateMessage.TemplateSettings("修改角色"));
message.setData(data);
return message;
}
/**
* 删除角色
*/
public static WxTemplateMessage delRole(Long projectId, String userName,String projectName,String roleName) {
WxTemplateMessage message = getWxTemplateMessage(projectId);
message.setTemplate_id(WxGzhUtil.Template.TASK_PROGRESS.templateId);
WxTemplateMessage.TemplateData data = new WxTemplateMessage.TemplateData();
data.setFirst(new WxTemplateMessage.TemplateSettings(""));
data.setKeyword1(new WxTemplateMessage.TemplateSettings(userName + "在项目《"+projectName+"》内的删除了角色" + roleName));
data.setKeyword2(new WxTemplateMessage.TemplateSettings("删除角色"));
message.setData(data);
return message;
}
/**
* 添加成员
*/
public static WxTemplateMessage saveMember(Long projectId, String userName,String projectName,String memberName) {
WxTemplateMessage message = getWxTemplateMessage(projectId);
message.setTemplate_id(WxGzhUtil.Template.TASK_PROGRESS.templateId);
WxTemplateMessage.TemplateData data = new WxTemplateMessage.TemplateData();
data.setFirst(new WxTemplateMessage.TemplateSettings(""));
data.setKeyword1(new WxTemplateMessage.TemplateSettings(userName + "在项目《"+projectName+"》内的添加了成员" + memberName));
data.setKeyword2(new WxTemplateMessage.TemplateSettings("添加成员"));
message.setData(data);
return message;
}
/**
* 删除成员
*/
public static WxTemplateMessage delMember(Long projectId, String userName,String projectName,String memberName) {
WxTemplateMessage message = getWxTemplateMessage(projectId);
message.setTemplate_id(WxGzhUtil.Template.TASK_PROGRESS.templateId);
WxTemplateMessage.TemplateData data = new WxTemplateMessage.TemplateData();
data.setFirst(new WxTemplateMessage.TemplateSettings(""));
data.setKeyword1(new WxTemplateMessage.TemplateSettings(userName + "在项目《"+projectName+"》内的删除了成员" + memberName));
data.setKeyword2(new WxTemplateMessage.TemplateSettings("删除成员"));
message.setData(data);
return message;
}
/**
* 修改成员
*/
public static WxTemplateMessage updateMember(Long projectId, String userName,String projectName,String memberName) {
WxTemplateMessage message = getWxTemplateMessage(projectId);
message.setTemplate_id(WxGzhUtil.Template.TASK_PROGRESS.templateId);
WxTemplateMessage.TemplateData data = new WxTemplateMessage.TemplateData();
data.setFirst(new WxTemplateMessage.TemplateSettings(""));
data.setKeyword1(new WxTemplateMessage.TemplateSettings(userName + "在项目《"+projectName+"》内的修改了成员" + memberName));
data.setKeyword2(new WxTemplateMessage.TemplateSettings("修改成员"));
message.setData(data);
return message;
}
/**
* 添加项目
*/
public static WxTemplateMessage saveWbs(Long projectId, String userName,String projectName) {
WxTemplateMessage message = getWxTemplateMessage(projectId);
message.setTemplate_id(WxGzhUtil.Template.TASK_PROGRESS.templateId);
WxTemplateMessage.TemplateData data = new WxTemplateMessage.TemplateData();
data.setFirst(new WxTemplateMessage.TemplateSettings(""));
data.setKeyword1(new WxTemplateMessage.TemplateSettings(userName + "添加了项目《"+projectName+"》"));
data.setKeyword2(new WxTemplateMessage.TemplateSettings("添加项目"));
message.setData(data);
return message;
}
/**
* 修改项目
*/
public static WxTemplateMessage updateProject(Long projectId, String userName,String projectName) {
WxTemplateMessage message = getWxTemplateMessage(projectId);
message.setTemplate_id(WxGzhUtil.Template.TASK_PROGRESS.templateId);
WxTemplateMessage.TemplateData data = new WxTemplateMessage.TemplateData();
data.setFirst(new WxTemplateMessage.TemplateSettings(""));
data.setKeyword1(new WxTemplateMessage.TemplateSettings(userName + "修改了项目《"+projectName+"》"));
data.setKeyword2(new WxTemplateMessage.TemplateSettings("修改项目"));
message.setData(data);
return message;
}
/**
* 删除项目
*/
public static WxTemplateMessage delProject(Long projectId, String userName,String projectName) {
WxTemplateMessage message = getWxTemplateMessage(projectId);
message.setTemplate_id(WxGzhUtil.Template.TASK_PROGRESS.templateId);
WxTemplateMessage.TemplateData data = new WxTemplateMessage.TemplateData();
data.setFirst(new WxTemplateMessage.TemplateSettings(""));
data.setKeyword1(new WxTemplateMessage.TemplateSettings(userName + "删除了项目《"+projectName+"》"));
data.setKeyword2(new WxTemplateMessage.TemplateSettings("删除项目"));
message.setData(data);
return message;
}
}

3
tall/src/main/java/com/ccsens/tall/web/DeliverController.java

@ -188,10 +188,11 @@ public class DeliverController {
return JsonResponse.newInstance().ok(queryDeliverByTaskIds);
}
@OperateType(value = 8)
@MustLoginTall
@ApiOperation(value = "删除输出文档下所有的文件", notes = "m:删除输出文档下所有的文件")
@RequestMapping(value = "/delAllFileOfDeliver", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse delAllFileOfDeliver(@ApiParam @Validated @RequestBody QueryDto<DeliverDto.DelAllFileOfDeliver> params) {
public JsonResponse delAllFileOfDeliver(@ApiParam @Validated @RequestBody QueryDto<DeliverDto.DelAllFileOfDeliver> params) throws Exception {
log.info("删除输出文档下所有的文件:{}",params);
deliverService.delAllFileOfDeliver(params.getParam(),params.getUserId());
log.info("删除输出文档下所有的文件");

2
tall/src/main/java/com/ccsens/tall/web/ExcelController.java

@ -7,6 +7,7 @@ import com.ccsens.tall.service.IExportWbsService;
import com.ccsens.util.JsonResponse;
import com.ccsens.util.UploadFileUtil_Servlet3;
import com.ccsens.util.WebConstant;
import com.ccsens.util.annotation.OperateType;
import io.jsonwebtoken.Claims;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@ -31,6 +32,7 @@ public class ExcelController {
@Resource
private IExportWbsService exportWbsService;
@OperateType(value = 1)
@ApiOperation(value = "导入WBS",notes = "文件大小不能超过20M,支持后缀:.xls|.xlsx")
@ApiImplicitParams({
@ApiImplicitParam(name = "file", value = "WBS表", required = true, paramType = "form",dataType = "__file")

3
tall/src/main/java/com/ccsens/tall/web/InputDocController.java

@ -140,10 +140,11 @@ public class InputDocController {
return JsonResponse.newInstance().ok(docRecordByTask);
}
@OperateType(value = 16)
@MustLoginTall
@ApiOperation(value = "删除输入文档下所有的文件", notes = "1007:删除输入文档下所有的文件")
@RequestMapping(value = "/delAllRecordOfTask", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse delAllRecordOfTask(@ApiParam @Validated @RequestBody QueryDto<InputDocDto.DelAllRecordOfTask> params) {
public JsonResponse delAllRecordOfTask(@ApiParam @Validated @RequestBody QueryDto<InputDocDto.DelAllRecordOfTask> params) throws Exception {
log.info("删除输入文档下所有的文件:{}",params);
iInputDocService.delAllRecordOfTask(params.getParam(),params.getUserId());
log.info("删除输入文档下所有的文件");

3
tall/src/main/java/com/ccsens/tall/web/ProjectController.java

@ -10,6 +10,7 @@ import com.ccsens.tall.service.IProTaskDetailService;
import com.ccsens.tall.service.IProjectService;
import com.ccsens.util.JsonResponse;
import com.ccsens.util.WebConstant;
import com.ccsens.util.annotation.OperateType;
import io.jsonwebtoken.Claims;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@ -230,6 +231,7 @@ public class ProjectController {
//==============================================================
@OperateType(value = 23)
@ApiOperation(value = "删除项目(修改状态)", notes = "")
@ApiImplicitParams({
@ApiImplicitParam(name = "projectId", value = "项目id", required = true, paramType = "query")
@ -255,6 +257,7 @@ public class ProjectController {
return JsonResponse.newInstance().ok(projectInfo);
}
@OperateType(value = 2)
@ApiOperation(value = "修改项目信息", notes = "")
@ApiImplicitParams({
})

2
tall/src/main/java/com/ccsens/tall/web/RoleController.java

@ -127,7 +127,7 @@ public class RoleController {
@MustLoginTall
@ApiOperation(value = "获取该成员的角色信息和未添加的角色信息",notes = "")
@RequestMapping(value = "/queryRoleShows", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<RoleVo.JueSeByProIdLists> queryRoleShows(@ApiParam @Validated @RequestBody QueryDto<RoleDto.QueryRoleShows> param){
public JsonResponse<RoleVo.JueSeByProIdLists> queryRoleShows(@ApiParam @Validated @RequestBody QueryDto<RoleDto.QueryRoleShows> param) throws Exception {
log.info("传入参数:{}", param);
RoleVo.JueSeByProIdLists jueSeByProIdLists=proRoleService.queryRoleShows(param);
return JsonResponse.newInstance().ok(jueSeByProIdLists);

6
tall/src/main/resources/mapper_dao/ProDeliverHistoryRecordDao.xml

@ -18,11 +18,12 @@
FROM
t_pro_deliver_history_record AS pdhr
LEFT JOIN t_pro_role AS pr ON pdhr.role_id = pr.id and pr.rec_status = 0
LEFT JOIN t_pro_task_input_record AS ptir ON ptir.id = pdhr.deliver_record_id and ptir.rec_status = 0
LEFT JOIN t_pro_task_input_record AS ptir ON ptir.id = pdhr.deliver_record_id
LEFT JOIN t_pro_member AS pm ON pm.id = pdhr.member_id and pm.rec_status = 0
WHERE
pdhr.deliver_id = #{deliverId}
and pdhr.rec_status = 0
ORDER BY pdhr.created_at DESC
</select>
<select id="finOutPutHistory" resultType="com.ccsens.tall.bean.vo.InputDocVo$DeliverHistory">
@ -40,11 +41,12 @@
FROM
t_pro_deliver_history_record AS pdhr
LEFT JOIN t_pro_role AS pr ON pdhr.role_id = pr.id and pr.rec_status = 0
LEFT JOIN t_pro_task_deliver_post_log AS ptdpl ON ptdpl.id = pdhr.deliver_record_id and ptdpl.rec_status = 0
LEFT JOIN t_pro_task_deliver_post_log AS ptdpl ON ptdpl.id = pdhr.deliver_record_id
LEFT JOIN t_pro_member AS pm ON pm.id = pdhr.member_id and pm.rec_status = 0
WHERE
pdhr.deliver_id = #{deliverId}
and pdhr.rec_status = 0
ORDER BY pdhr.created_at DESC
</select>
</mapper>

6
tcm/src/main/java/com/ccsens/tcm/service/OcrService.java

@ -4,8 +4,6 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.ccsens.tcm.bean.dto.QuestionOcrDto;
import com.ccsens.tcm.bean.po.QuestionOcr;
import com.ccsens.tcm.bean.po.QuestionOcrExample;
import com.ccsens.tcm.bean.vo.QuestionOcrVo;
import com.ccsens.tcm.persist.dao.QuestionOcrDao;
import com.ccsens.tcm.uitl.Constant;
@ -41,7 +39,7 @@ public class OcrService implements IOcrService {
List<QuestionOcrVo.GeneralBasic> vos = new ArrayList<>();
BaiDuDto.GeneralBasic basic = new BaiDuDto.GeneralBasic();
basic.setUrl(generalBasic.getUrl());
BaiDuVo.GeneralBasic words = BaiDuUtil.generalBasic(Constant.BaiDu.APP_KEY, Constant.BaiDu.SECRET_KEY, basic);
BaiDuVo.GeneralBasic words = BaiDuUtil.accurateBasic(Constant.BaiDu.APP_KEY, Constant.BaiDu.SECRET_KEY, basic);
log.info("文字识别:{}", words);
if (words == null || words.getWordsResultNum() <= 0) {
return vos;
@ -70,7 +68,7 @@ public class OcrService implements IOcrService {
vo.setQuestionId(rule.getQuestionId());
vo.setCode(rule.getCode());
vo.setSort(rule.getSort());
vo.setContent(builder == null ? "" : builder.toString());
vo.setContent(builder.toString());
vos.add(vo);
});

51
util/src/main/java/com/ccsens/util/baidu/BaiDuUtil.java

@ -25,10 +25,12 @@ public class BaiDuUtil {
private RedisUtil redisUtil;
private static BaiDuUtil util;
/**token_appKey*/
private static final String tokenKey = "baidu_token_";
private static final String TOKEN_KEY = "baidu_token_";
private static final String authUrl = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id={}&client_secret={}";
private static final String generalBasicUrl = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token={}";
private static final String AUTH_URL = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id={}&client_secret={}";
private static final String GENERAL_BASIC_URL = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token={}";
/**通用文字识别(高精度版)*/
private static final String ACCURATE_BASIC_URL = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic?access_token={}";
@PostConstruct
public void init(){
@ -44,13 +46,13 @@ public class BaiDuUtil {
*/
public static String getToken(String appKey, String secretKey){
log.info("获取百度认证:{},{}", appKey, secretKey);
String key = tokenKey + appKey;
String key = TOKEN_KEY + appKey;
String token = (String) util.redisUtil.get(key);
log.info("缓存token:{}", token);
if (StrUtil.isNotEmpty(token)) {
return token;
}
String url = StrUtil.format(authUrl, appKey, secretKey);
String url = StrUtil.format(AUTH_URL, appKey, secretKey);
String result = RestTemplateUtil.postUrlEncode(url, null);
log.info("获取百度认证:{}", result);
JSONObject json = JSONObject.parseObject(result);
@ -67,20 +69,47 @@ public class BaiDuUtil {
return token;
}
/**
* 调用百度通用文字识别高精度版
* @param appKey appKey
* @param secretKey secretKey
* @param basic 图像
* @return 识别结果
*/
public static BaiDuVo.GeneralBasic accurateBasic(String appKey, String secretKey, BaiDuDto.GeneralBasic basic) {
return getGeneralBasic(appKey, secretKey, basic, ACCURATE_BASIC_URL);
}
public static BaiDuVo.GeneralBasic generalBasic(String appKey, String secretKey, BaiDuDto.GeneralBasic basic) {
/**
* 调用百度通用文字识别
* @param appKey appKey
* @param secretKey secretKey
* @param basic 图像
* @param accurateBasicUrl 路径
* @return 识别结果
*/
private static BaiDuVo.GeneralBasic getGeneralBasic(String appKey, String secretKey, BaiDuDto.GeneralBasic basic, String accurateBasicUrl) {
String token = getToken(appKey, secretKey);
String url = StrUtil.format(generalBasicUrl, token);
// String result = RestTemplateUtil.postBody(url, basic);
String url = StrUtil.format(accurateBasicUrl, token);
String result = RestTemplateUtil.postUrlEncode(url, basic);
log.info("调用通用文字识别(标准版)结果:{}", result);
log.info("百度orc调用{}的结果是:{}", url, result);
if (result.contains(Code.GENERAL_BASIC_ERROR)) {
CodeEnum thirdError = CodeEnum.THIRD_ERROR;
thirdError.setMsg(result);
throw new BaseException(thirdError);
}
BaiDuVo.GeneralBasic basicVo = JSONObject.parseObject(result, BaiDuVo.GeneralBasic.class);
return basicVo;
return JSONObject.parseObject(result, BaiDuVo.GeneralBasic.class);
}
/**
* 调用百度通用文字识别标准版
* @param appKey appKey
* @param secretKey secretKey
* @param basic 图像
* @return 识别结果
*/
public static BaiDuVo.GeneralBasic generalBasic(String appKey, String secretKey, BaiDuDto.GeneralBasic basic) {
return getGeneralBasic(appKey, secretKey, basic, GENERAL_BASIC_URL);
}
private static class Code{

Loading…
Cancel
Save