Compare commits
6 Commits
14c726cb9a
...
da70993593
Author | SHA1 | Date | |
---|---|---|---|
![]() |
da70993593 | ||
![]() |
6c9a81ebf7 | ||
86fe04a895 | |||
![]() |
21eed05bcc | ||
![]() |
479d3bb421 | ||
![]() |
5e1da6b079 |
@ -74,6 +74,7 @@ public class AuthController {
|
|||||||
@PostMapping("/auth/login")
|
@PostMapping("/auth/login")
|
||||||
public BaseResponse authLogin(@RequestBody @Validated UserLoginVO userLoginVO, @NotNull BindingResult bindingResult) {
|
public BaseResponse authLogin(@RequestBody @Validated UserLoginVO userLoginVO, @NotNull BindingResult bindingResult) {
|
||||||
log.info("请求接口[POST]: /auth/login");
|
log.info("请求接口[POST]: /auth/login");
|
||||||
|
|
||||||
// 判断是否有参数错误
|
// 判断是否有参数错误
|
||||||
if (bindingResult.hasErrors()) {
|
if (bindingResult.hasErrors()) {
|
||||||
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
|
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
|
||||||
|
@ -5,6 +5,7 @@ import com.jsl.oa.mapper.ProjectMapper;
|
|||||||
import com.jsl.oa.model.doData.ProjectCuttingDO;
|
import com.jsl.oa.model.doData.ProjectCuttingDO;
|
||||||
import com.jsl.oa.model.doData.ProjectDO;
|
import com.jsl.oa.model.doData.ProjectDO;
|
||||||
import com.jsl.oa.model.doData.ProjectUserDO;
|
import com.jsl.oa.model.doData.ProjectUserDO;
|
||||||
|
import com.jsl.oa.model.doData.ProjectWorkDO;
|
||||||
import com.jsl.oa.model.doData.info.ProjectShowDO;
|
import com.jsl.oa.model.doData.info.ProjectShowDO;
|
||||||
import com.jsl.oa.model.voData.ProjectEditVO;
|
import com.jsl.oa.model.voData.ProjectEditVO;
|
||||||
import com.jsl.oa.model.voData.ProjectInfoVO;
|
import com.jsl.oa.model.voData.ProjectInfoVO;
|
||||||
@ -46,6 +47,7 @@ public class ProjectDAO {
|
|||||||
log.info("\t\t> 从 MySQL 更新数据");
|
log.info("\t\t> 从 MySQL 更新数据");
|
||||||
ProjectDO projectDO = new ProjectDO();
|
ProjectDO projectDO = new ProjectDO();
|
||||||
Processing.copyProperties(projectEdit,projectDO);
|
Processing.copyProperties(projectEdit,projectDO);
|
||||||
|
projectDO.setId(projectId);
|
||||||
projectMapper.projectEdit(projectDO);
|
projectMapper.projectEdit(projectDO);
|
||||||
log.info("\t\t> 从 MySQL 获取数据");
|
log.info("\t\t> 从 MySQL 获取数据");
|
||||||
return projectMapper.getProjectById(projectId);
|
return projectMapper.getProjectById(projectId);
|
||||||
@ -238,5 +240,9 @@ public class ProjectDAO {
|
|||||||
return projectMapper.tget(id);
|
return projectMapper.tget(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ProjectWorkDO getProjectWorkerById(Long id){
|
||||||
|
return projectMapper.getProjectWorkById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -29,4 +29,8 @@ public interface ModuleMapper {
|
|||||||
|
|
||||||
@Select("select * from organize_oa.oa_project_work where pid=#{id} and is_delete=0 and type=1 ")
|
@Select("select * from organize_oa.oa_project_work where pid=#{id} and is_delete=0 and type=1 ")
|
||||||
List<ProjectWorkDO> getAllMoudleByPid(Long id);
|
List<ProjectWorkDO> getAllMoudleByPid(Long id);
|
||||||
|
|
||||||
|
@Select("select principal_id from organize_oa.oa_project where id=(select project_id " +
|
||||||
|
"from organize_oa.oa_project_work where oa_project_work.id = #{sysId})")
|
||||||
|
Long getPridBySysyid(Integer sysId);
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,7 @@ import com.jsl.oa.model.doData.ProjectDO;
|
|||||||
import com.jsl.oa.model.doData.ProjectUserDO;
|
import com.jsl.oa.model.doData.ProjectUserDO;
|
||||||
import com.jsl.oa.model.doData.ProjectWorkDO;
|
import com.jsl.oa.model.doData.ProjectWorkDO;
|
||||||
import com.jsl.oa.model.voData.ProjectInfoVO;
|
import com.jsl.oa.model.voData.ProjectInfoVO;
|
||||||
|
import com.jsl.oa.model.voData.ProjectWorkSimpleVO;
|
||||||
import com.jsl.oa.model.voData.ProjectWorkVO;
|
import com.jsl.oa.model.voData.ProjectWorkVO;
|
||||||
import org.apache.ibatis.annotations.*;
|
import org.apache.ibatis.annotations.*;
|
||||||
|
|
||||||
@ -109,7 +110,14 @@ public interface ProjectMapper {
|
|||||||
List<ProjectDO> tgetBytags(List<String> tags,List<Integer> isFinish);
|
List<ProjectDO> tgetBytags(List<String> tags,List<Integer> isFinish);
|
||||||
|
|
||||||
@Select("select * from organize_oa.oa_project_work where id=#{id}")
|
@Select("select * from organize_oa.oa_project_work where id=#{id}")
|
||||||
ProjectWorkDO getWorkById(Integer id);
|
ProjectWorkSimpleVO getWorkById(Integer id);
|
||||||
|
|
||||||
@Select("select principal_id from organize_oa.oa_project_work where id=#{pid}")
|
@Select("select principal_id from organize_oa.oa_project_work where id=#{pid}")
|
||||||
Long getPirIdbyWorkid(Long pid);
|
Long getPirIdbyWorkid(Long pid);
|
||||||
|
|
||||||
|
@Select("select principal_id from organize_oa.oa_project_work where id=#{id}")
|
||||||
|
Long getPid(Integer id);
|
||||||
|
|
||||||
|
@Select("select * from organize_oa.oa_project_work where id=#{id}")
|
||||||
|
ProjectWorkDO getProjectWorkById(Long id);
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,7 @@ public class ProjectDO {
|
|||||||
private Integer isDelete;
|
private Integer isDelete;
|
||||||
private Integer isFinish;
|
private Integer isFinish;
|
||||||
private Long workLoad;
|
private Long workLoad;
|
||||||
private boolean status;
|
private Integer status;
|
||||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "UTC")
|
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "UTC")
|
||||||
private Timestamp beginTime;
|
private Timestamp beginTime;
|
||||||
|
|
||||||
|
@ -19,7 +19,8 @@ public class ProjectEditVO {
|
|||||||
private String file;
|
private String file;
|
||||||
private String description;
|
private String description;
|
||||||
private Integer isFinish;
|
private Integer isFinish;
|
||||||
private boolean status;
|
private Integer status;
|
||||||
|
private Long workLoad;
|
||||||
private Timestamp beginTime;
|
private Timestamp beginTime;
|
||||||
private Timestamp completeTime;
|
private Timestamp completeTime;
|
||||||
private Timestamp deadline;
|
private Timestamp deadline;
|
||||||
|
@ -0,0 +1,35 @@
|
|||||||
|
package com.jsl.oa.model.voData;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.sql.Timestamp;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 总体描述
|
||||||
|
*
|
||||||
|
* 在projectWorkDO上新增了负责人:principalUser,子系统名称:childSystemName
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class ProjectWorkAndNameVO {
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
private Long pid;
|
||||||
|
private String childSystemName;
|
||||||
|
private Long projectId;
|
||||||
|
private Long principalId;
|
||||||
|
private String principalUser;
|
||||||
|
private Integer cycle;
|
||||||
|
private Integer workLoad;
|
||||||
|
private Integer type;
|
||||||
|
private String name;
|
||||||
|
private String description;
|
||||||
|
private Integer isDelete;
|
||||||
|
private Integer isFinish;
|
||||||
|
private boolean status;
|
||||||
|
private Timestamp beginTime;
|
||||||
|
private Timestamp completeTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,26 @@
|
|||||||
|
package com.jsl.oa.model.voData;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.sql.Timestamp;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||||
|
public class ProjectWorkSimpleVO {
|
||||||
|
private String name;
|
||||||
|
private Long principalId;
|
||||||
|
private String principalUser;
|
||||||
|
private Integer isFinish;
|
||||||
|
private String description;
|
||||||
|
private Long cycle;
|
||||||
|
private Long projectId;
|
||||||
|
private Long workLoad;
|
||||||
|
private Long id;
|
||||||
|
private String tags;
|
||||||
|
private Integer status;
|
||||||
|
private Timestamp beginTime;
|
||||||
|
private Timestamp completeTime;
|
||||||
|
}
|
@ -1,10 +1,16 @@
|
|||||||
package com.jsl.oa.services.impl;
|
package com.jsl.oa.services.impl;
|
||||||
|
|
||||||
|
import ch.qos.logback.core.joran.util.beans.BeanUtil;
|
||||||
import com.jsl.oa.dao.ModuleDAO;
|
import com.jsl.oa.dao.ModuleDAO;
|
||||||
|
import com.jsl.oa.dao.ProjectDAO;
|
||||||
import com.jsl.oa.dao.UserDAO;
|
import com.jsl.oa.dao.UserDAO;
|
||||||
import com.jsl.oa.mapper.ModuleMapper;
|
import com.jsl.oa.mapper.ModuleMapper;
|
||||||
import com.jsl.oa.mapper.RoleMapper;
|
import com.jsl.oa.mapper.RoleMapper;
|
||||||
|
import com.jsl.oa.model.doData.ProjectDO;
|
||||||
import com.jsl.oa.model.doData.ProjectWorkDO;
|
import com.jsl.oa.model.doData.ProjectWorkDO;
|
||||||
|
import com.jsl.oa.model.doData.UserDO;
|
||||||
|
import com.jsl.oa.model.voData.ProjectWorkAndNameVO;
|
||||||
|
import com.jsl.oa.model.voData.ProjectWorkVO;
|
||||||
import com.jsl.oa.services.ModuleService;
|
import com.jsl.oa.services.ModuleService;
|
||||||
import com.jsl.oa.utils.BaseResponse;
|
import com.jsl.oa.utils.BaseResponse;
|
||||||
import com.jsl.oa.utils.ErrorCode;
|
import com.jsl.oa.utils.ErrorCode;
|
||||||
@ -16,6 +22,7 @@ import org.springframework.stereotype.Service;
|
|||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.xml.transform.Result;
|
import javax.xml.transform.Result;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@ -24,6 +31,7 @@ import java.util.List;
|
|||||||
public class ModuleServiceImpl implements ModuleService {
|
public class ModuleServiceImpl implements ModuleService {
|
||||||
private final RoleMapper roleMapper;
|
private final RoleMapper roleMapper;
|
||||||
private final ModuleDAO moduleDAO;
|
private final ModuleDAO moduleDAO;
|
||||||
|
private final ProjectDAO projectDAO;
|
||||||
private final ModuleMapper moduleMapper;
|
private final ModuleMapper moduleMapper;
|
||||||
private final UserDAO userDAO;
|
private final UserDAO userDAO;
|
||||||
|
|
||||||
@ -36,12 +44,12 @@ public class ModuleServiceImpl implements ModuleService {
|
|||||||
Long pid = moduleMapper.getPidByProjectid(projectId);
|
Long pid = moduleMapper.getPidByProjectid(projectId);
|
||||||
//判断是否是项目负责人
|
//判断是否是项目负责人
|
||||||
int is = 1;
|
int is = 1;
|
||||||
if(!pid.equals(userId)){
|
if (!pid.equals(userId)) {
|
||||||
log.info("不是负责人");
|
log.info("不是负责人");
|
||||||
is = 0;
|
is = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<ProjectWorkDO> projectWorkDOList= moduleMapper.getByProjectId(projectId,userId,is);
|
List<ProjectWorkDO> projectWorkDOList = moduleMapper.getByProjectId(projectId, userId, is);
|
||||||
return ResultUtil.success(projectWorkDOList);
|
return ResultUtil.success(projectWorkDOList);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -52,14 +60,29 @@ public class ModuleServiceImpl implements ModuleService {
|
|||||||
Long userId = Processing.getAuthHeaderToUserId(request);
|
Long userId = Processing.getAuthHeaderToUserId(request);
|
||||||
//获取子系统负责人id
|
//获取子系统负责人id
|
||||||
Long pid = moduleMapper.getPidBySysid(sysId);
|
Long pid = moduleMapper.getPidBySysid(sysId);
|
||||||
//判断是否是子系统负责人
|
//获取项目负责人id
|
||||||
|
Long prid = moduleMapper.getPridBySysyid(sysId);
|
||||||
|
//判断是否是子系统/项目负责人
|
||||||
int is = 1;
|
int is = 1;
|
||||||
if(!pid.equals(userId)){
|
if (!pid.equals(userId) && !prid.equals(userId)) {
|
||||||
is = 0;
|
is = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<ProjectWorkDO> projectWorkDOList = moduleMapper.getBySysId(sysId,userId,is);
|
List<ProjectWorkDO> projectWorkDOList = moduleMapper.getBySysId(sysId, userId, is);
|
||||||
return ResultUtil.success(projectWorkDOList);
|
// 封装VO类
|
||||||
|
List<ProjectWorkAndNameVO> projectWorkAndNameVOS = new ArrayList<>();
|
||||||
|
for (ProjectWorkDO projectWorkDO : projectWorkDOList) {
|
||||||
|
ProjectWorkAndNameVO projectWorkAndNameVO = new ProjectWorkAndNameVO();
|
||||||
|
Processing.copyProperties(projectWorkDO,projectWorkAndNameVO);
|
||||||
|
// 添加负责人和子系统名称
|
||||||
|
projectWorkAndNameVO.
|
||||||
|
setChildSystemName(projectDAO.getProjectWorkerById(projectWorkDO.getPid()).getName())
|
||||||
|
.setPrincipalUser(userDAO.getUserById(projectWorkDO.getPrincipalId()).getUsername());
|
||||||
|
|
||||||
|
projectWorkAndNameVOS.add(projectWorkAndNameVO);
|
||||||
|
|
||||||
|
}
|
||||||
|
return ResultUtil.success(projectWorkAndNameVOS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -67,7 +90,7 @@ public class ModuleServiceImpl implements ModuleService {
|
|||||||
public BaseResponse deleteById(HttpServletRequest request, Long id) {
|
public BaseResponse deleteById(HttpServletRequest request, Long id) {
|
||||||
|
|
||||||
// 检测是否为管理员
|
// 检测是否为管理员
|
||||||
if(!Processing.checkUserIsAdmin(request,roleMapper)){
|
if (!Processing.checkUserIsAdmin(request, roleMapper)) {
|
||||||
return ResultUtil.error(ErrorCode.NOT_PERMISSION);
|
return ResultUtil.error(ErrorCode.NOT_PERMISSION);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -76,12 +99,12 @@ public class ModuleServiceImpl implements ModuleService {
|
|||||||
return ResultUtil.success("删除成功");
|
return ResultUtil.success("删除成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 删除子模块方法
|
// 删除子模块方法
|
||||||
public void deleteMoudule(Long id){
|
public void deleteMoudule(Long id) {
|
||||||
//获取所有父Id=id的子模块
|
//获取所有父Id=id的子模块
|
||||||
List<ProjectWorkDO> projectWorkDOS = moduleMapper.getAllMoudleByPid(id);
|
List<ProjectWorkDO> projectWorkDOS = moduleMapper.getAllMoudleByPid(id);
|
||||||
|
|
||||||
for(ProjectWorkDO workDO: projectWorkDOS){
|
for (ProjectWorkDO workDO : projectWorkDOS) {
|
||||||
deleteMoudule(workDO.getId());
|
deleteMoudule(workDO.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -168,8 +168,24 @@ public class ProjectServiceImpl implements ProjectService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BaseResponse getWorkById(Integer id) {
|
public BaseResponse getWorkById(Integer id) {
|
||||||
ProjectWorkDO projectWorkDO = projectMapper.getWorkById(id);
|
ProjectWorkSimpleVO projectWorkSimpleVO = projectMapper.getWorkById(id);
|
||||||
return ResultUtil.success(projectWorkDO);
|
|
||||||
|
projectWorkSimpleVO.setPrincipalUser(userDAO.getUserById(projectMapper.getPid(id)).getUsername());
|
||||||
|
// 解析JSON字符串
|
||||||
|
JsonNode rootNode = null;
|
||||||
|
try {
|
||||||
|
rootNode = objectMapper.readTree(projectWorkSimpleVO.getDescription());
|
||||||
|
// 访问特定的key
|
||||||
|
JsonNode targetNode = rootNode.get("description");
|
||||||
|
if(targetNode != null && !rootNode.isNull()){
|
||||||
|
projectWorkSimpleVO.setDescription(targetNode.asText());
|
||||||
|
}else{
|
||||||
|
projectWorkSimpleVO.setDescription("null");
|
||||||
|
}
|
||||||
|
} catch (JsonProcessingException ignored) {
|
||||||
|
|
||||||
|
}
|
||||||
|
return ResultUtil.success(projectWorkSimpleVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
<select id="getBySysId" resultType="com.jsl.oa.model.doData.ProjectWorkDO">
|
<select id="getBySysId" resultType="com.jsl.oa.model.doData.ProjectWorkDO">
|
||||||
select * from organize_oa.oa_project_work where pid=#{sysId} and type=1
|
select * from organize_oa.oa_project_work where pid=#{sysId} and type=1
|
||||||
<if test="is != 1 ">
|
<if test="is != 1 ">
|
||||||
and principal_id=#{userId}
|
and (principal_id=#{userId} or principal_id is null)
|
||||||
</if>
|
</if>
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
@ -34,13 +34,13 @@
|
|||||||
<if test="deadline != null and deadline != ''">
|
<if test="deadline != null and deadline != ''">
|
||||||
deadline = #{deadline},
|
deadline = #{deadline},
|
||||||
</if>
|
</if>
|
||||||
<if test="status != null and status != ''">
|
<if test="status != null">
|
||||||
status = #{status},
|
status = #{status},
|
||||||
</if>
|
</if>
|
||||||
<if test="isFinish != null and isFinish != ''">
|
<if test="isFinish != null">
|
||||||
is_finish = #{isFinish},
|
is_finish = #{isFinish},
|
||||||
</if>
|
</if>
|
||||||
<if test="isDelete != null and isDelete != ''">
|
<if test="isDelete != null">
|
||||||
is_delete = #{isDelete},
|
is_delete = #{isDelete},
|
||||||
</if>
|
</if>
|
||||||
</set>
|
</set>
|
||||||
@ -113,7 +113,7 @@
|
|||||||
<if test="is != null">
|
<if test="is != null">
|
||||||
(principal_id = #{userId} and is_delete=false) or
|
(principal_id = #{userId} and is_delete=false) or
|
||||||
</if>
|
</if>
|
||||||
id in(select project_id from organize_oa.oa_project_work where is_delete=false and status =1 and principal_id=#{userId})
|
id in(select project_id from organize_oa.oa_project_work where is_delete=false and principal_id=#{userId})
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="workget1" resultType="com.jsl.oa.model.doData.ProjectDO">
|
<select id="workget1" resultType="com.jsl.oa.model.doData.ProjectDO">
|
||||||
|
Loading…
x
Reference in New Issue
Block a user